鏈?zhǔn)骄幊蹋菏菍⒍鄠€操作(多行代碼)通過點(diǎn)號(.)鏈接在一起成為一句代碼,使代碼可讀性好桃序。a(1).b(2).c(3)
特點(diǎn):方法的返回值是block,block必須有返回值(本身對象),block參數(shù)(需要操作的值)
例:masonry
相關(guān)代碼實現(xiàn):
@class CalculterModel;
#import <Foundation/Foundation.h>
typedef CalculterModel *(^CalculateOption) (int);
@interface CalculterModel : NSObject
@property (nonatomic, assign) int result;
@property (nonatomic, copy) CalculateOption add;
@property (nonatomic, copy) CalculateOption sub;
@property (nonatomic, copy) CalculateOption muilt;
@property (nonatomic, copy) CalculateOption divide;
@end
#import "CalculterModel.h"
@implementation CalculterModel
//加
-(CalculateOption)add
{
????????????return ^(int inputNum) {
????????????????????????????????????self.result+=inputNum;
????????????????return self;
????????????};
}
//減
-(CalculateOption)sub
{
????????????????return ^(int inputNum){
????????????????????????????self.result-=inputNum;
????????????????return self;
????????????????};
}
//乘
-(CalculateOption)muilt
{
????????????return ^(int inputNum){
? ? ? ? ? ? ? ? ? ? ? self.result*=inputNum;
????????????????????????return self;
????????????};
}
//除
-(CalculateOption)divide
{
? ? ? ? ? ? ?return ^(int inputNum){
????????????????????self.result/=inputNum;
? ? ? ? ? ? ? return self;
????????????};
}
實現(xiàn)的調(diào)用:
? ? ? ? ? ? CalculterModel *model = [CalculterModel new];
????????????int result = model.add(123).add(222).result;
????????????NSLog(@"result = %d",result);