Block實現鏈式程式設計

發表於2016-07-26

使用場景:物件呼叫了一個方法想繼續再呼叫另一個方法

方案1.
直接呼叫兩次

方案2
在方法中返回物件本身,來連續呼叫,程式碼相對簡潔

呼叫效果

方案3
block鏈式,上個方案還是不簡潔,於是有了Block實現鏈式程式設計

讓物件方法返回block,block被呼叫再返回物件本身,就可以實現如下呼叫效果
Person *p = [[Person alloc] init];
p.study().run().study();
p.study()實際分為了兩步,先用p.study得到了block,再用括號()呼叫了block。呼叫了block又返回物件本身,於是就可以繼續呼叫方法

如果想傳引數,使用冒號方式定義方法,將不能實現鏈式

只能[p study:@”iOS”]無法鏈式

所以傳引數要傳給block

於是就能

相關文章