雖然鏈?zhǔn)骄幊毯苌僖姽俨幔悄承﹫龊舷律祝绻軌蚯擅罾胋lock 實(shí)現(xiàn)鏈?zhǔn)骄幊痰脑挘粌H會(huì)提高開發(fā)效率膝宁,而且代碼很清晰直觀鸦难!也許你會(huì)愛上它的!學(xué)習(xí)它员淫,你只需記住它的寫法就行了合蔽。
我曾經(jīng)做過一個(gè)藍(lán)牙項(xiàng)目,由于步驟比較多介返!因?yàn)槌R?guī)寫法要調(diào)用很多方法一大堆代碼看起來也暈暈的拴事,后來,使用到鏈?zhǔn)骄幊淌バa易讀使用更方便刃宵!下面分享一下鏈?zhǔn)骄幊痰暮唵问褂茫?/p>
鏈?zhǔn)骄幊蹋瑳]什么難徘公,就是利用block直接按照格式寫就行了牲证。
下面用一個(gè)例子說明:我要去市場買菜!9孛妗L古邸(常規(guī)寫法:)
-首先:新建一個(gè)Person類
創(chuàng)建方法(常規(guī)寫法):
// 無返回值
- (void)peoples; // 誰
- (void)byBuses; // 坐公交去
- (void)buyVege; // 買東西-
實(shí)現(xiàn)方法:
// 無返回值
- (void)peoples
{
NSLog(@"我");
}- (void)byBuses { NSLog(@"坐公交去"); } - (void)buyVege { NSLog(@"買西紅柿和茄子"); }
-
在main函數(shù)調(diào)用:
Person *p = [[Person alloc] init];[p peoples]; [p byBuses]; [p buyVege];
打印結(jié)果:
缺點(diǎn):如果有許多方法呢?在調(diào)用的時(shí)候那就要寫好多行代碼缭裆,而且也不好看键闺!
用block 巧妙使用鏈?zhǔn)骄幊蹋?/h3>
和上面一樣,就是注意格式寫法而已澈驼,并且多了個(gè)返回值辛燥。
聲明方法:
// 我做車去買菜
- (Person *(^)(NSString *name))people; // 誰
- (Person *(^)())byBus;// 做公交
- (Person *(^)(NSString *VegName))buyVegetables; // 去買菜
-
實(shí)現(xiàn)方法:
// 我做車去買菜
- (Person *(^)(NSString *))people
{
return ^(NSString *name){
NSLog(@"帥哥:%@",name);
return self;
};
}
- (Person *(^)())byBus
{
return ^{
NSLog(@"坐公交去");
return self;
};
}
- (Person *(^)(NSString *))buyVegetables
{
return ^(NSString *buyVege){
NSLog(@"買:%@",buyVege);
return self;
};
}
在main函數(shù)調(diào)用:
Person *p = [[Person alloc] init];
// 只需用點(diǎn)就實(shí)現(xiàn)調(diào)用了
p.people(@"光明程輝").byBus().buyVegetables(@"西紅柿、茄子");
- 實(shí)現(xiàn)打印結(jié)果:
優(yōu)點(diǎn):簡單,思路清晰挎塌!易懂徘六!
和上面一樣,就是注意格式寫法而已澈驼,并且多了個(gè)返回值辛燥。
聲明方法:
// 我做車去買菜
- (Person *(^)(NSString *name))people; // 誰
- (Person *(^)())byBus;// 做公交
- (Person *(^)(NSString *VegName))buyVegetables; // 去買菜
實(shí)現(xiàn)方法:
// 我做車去買菜
- (Person *(^)(NSString *))people
{
return ^(NSString *name){
NSLog(@"帥哥:%@",name);
return self;
};
}
- (Person *(^)())byBus
{
return ^{
NSLog(@"坐公交去");
return self;
};
}
- (Person *(^)(NSString *))buyVegetables
{
return ^(NSString *buyVege){
NSLog(@"買:%@",buyVege);
return self;
};
}
在main函數(shù)調(diào)用:
Person *p = [[Person alloc] init];
// 只需用點(diǎn)就實(shí)現(xiàn)調(diào)用了
p.people(@"光明程輝").byBus().buyVegetables(@"西紅柿、茄子");