前言
最近用了下masonry,看到許多如
make.top.equalTo(self.mas_topLayoutGuide);
make.left.equalTo(self.view);
make.right.equalTo(self.view);
make.height.equalTo(@40);
這樣的代碼隐锭,又通過幾篇博客了解到這就是簡(jiǎn)單地鏈?zhǔn)骄幊膛哉瘢詼?zhǔn)備了解一下,并且在學(xué)習(xí)masonry框架前移层,也可以學(xué)習(xí)它的編程思想。
鏈?zhǔn)骄幊趟枷?/h4>
是將多個(gè)操作(多行代碼)通過點(diǎn)號(hào)(.)鏈接在一起成為一句代碼,使代碼可讀性好赫粥。如a(1).b(2).c(3)
鏈?zhǔn)骄幊烫攸c(diǎn)
方法的返回值是block,block必須有返回值(本身對(duì)象)观话,block參數(shù)(需要操作的值)
實(shí)戰(zhàn)
模仿masonry,寫一個(gè)加法計(jì)算器越平,練習(xí)鏈?zhǔn)骄幊獭?/p>
1.新建類频蛔。
2.在CaculatorMaker.h里定義四則運(yùn)算
@interface CaculatorMaker : NSObject
@property (nonatomic, assign) int result;
- (CaculatorMaker *(^)(int))add;
- (CaculatorMaker *(^)(int))sub;
- (CaculatorMaker *(^)(int))multi;
- (CaculatorMaker *(^)(int))divide;
@end
3.在CaculatorMaker.m里實(shí)現(xiàn)
- (CaculatorMaker *(^)(int))add
{
return ^id(int x) {
self.result += x;
return self;
};
}
4.定義運(yùn)算方法
@class CaculatorMaker;
@interface NSObject (Caculator)
+ (int)makeCaculators:(void(^)(CaculatorMaker *maker))caculatorMaker;
@end
5.實(shí)現(xiàn)
+ (int)makeCaculators:(void(^)(CaculatorMaker *maker))caculatorMaker
{
CaculatorMaker *maker = [[CaculatorMaker alloc]init];
caculatorMaker(maker);
return maker.result;
}
6.最后就能隨意調(diào)用了
int result = [NSObject makeCaculators:^(CaculatorMaker *maker) {
maker.add(1).add(1).add(3).multi(3).sub(5).divide(2);
}];
后記
非常簡(jiǎn)單的代碼灵迫,初步的學(xué)習(xí)了下鏈?zhǔn)骄幊蹋杏X這種編程方式很爽晦溪,分享給大家瀑粥。