ios的鏈式程式設計筆記

2022-04-09 20:24:20 字數 1612 閱讀 2782

1.masonry的語法為啥能連續的使用點語法? >> 底層使用的是:用block當函式的返回引數  > 鏈式程式設計思想

2. 使用block當函式的返回引數

// 之前開發中比較習慣,把事情封裝到乙個方法中,

// 鏈式程式設計思想:把要做的事情封裝到block,給外界提供乙個返回這個block的方法

// 鏈式程式設計思想方法特點:方法返回值必須是block,block引數:放需要操作的內容,block返回值:方法呼叫者

- (void)viewdidload ;

block(@10);

// equalto(@10)返回值=  self.equaltowithrelation(attribute, nslayoutrelatione qual);

make.

left.top.equalto(@10);

make.right.bottom.equalto(@(-10));

};// 引數:block

[redview mas_makeconstraints:^(masconstraintmaker*make) ];

// mas_makeconstraints作用: 給控制項設定布局, 把控制項的所有約束儲存到約束製造者中.

// - (nsarray *)mas_makeconstraints:(void(^)(masconstraintmaker *))block

// 1.建立乙個約束製造者

// 2.呼叫block(maker),把所有的控制項的約束全部儲存到約束製造者

// 3.[constraintmaker install]:遍歷約束製造者的所有約束給控制項新增約束

}計算加法為例: 

1.建立乙個計算者的類

- (caculatormaker* (^)(intnum))add;}

2.寫乙個繼承nsobject的類 仿masonry的方法寫乙個自己的方法:+ (int)makecaculator:(void(^)(caculatormaker*))block

#import "nsobject+caculator.h"

#import "caculatormaker.h"

@implementationnsobject (caculator)

+ (int)makecaculator:(void(^)(caculatormaker*))block

@end

3. 直接使用鏈式程式設計

- (void)viewdidload ];

nslog(@"%d",result);

}- ( 返回值是block ) 方法名

return *{

block內部裝著真正要執行的**

return self;

iOS鏈式程式設計

nsinteger result adder.add 4 sub 1 mult 2 div 3 表示 4 1 2 3,是不是很方便很直觀。我們知道,如果是c 的實現話鏈式操作是很簡單的,因為c 的函式呼叫就是通過點操作呼叫的,只需要返回物件本身就可以實現鏈結了。但是oc就不行了,因為oc的點操作表示...

ios鏈式程式設計

首先我們看一下使用masonry對控制項進行布局的 格式。self.bottomview1 mas makeconstraints masconstraintmaker make 上邊這段 有特點 使用點語法 可以進行鏈式呼叫 那麼實現鏈式程式設計就需要解決上邊兩個問題。function.h imp...

iOS中的鏈式程式設計

ios開發過程中鏈式程式設計平時運用的最多的應該就是 masonry的約束,剛開始用masonry時就感覺莫名其妙,只是按照規則用 把一系列設定連線起來,感覺可讀性很好並沒有深入 偶爾看到鏈式程式設計的思想,就是以masonry舉得例子,才認識到這其實是一種讓 可讀性更強,也能提高開發效率的一種思想...