iOS 開發之使用鏈式程式設計思想實現簡單的計算器

2022-09-15 08:12:10 字數 1618 閱讀 1096

鏈式程式設計思想是將多個操作(多行**)通過點號(.)鏈結在一起成為一句**,使**可讀性好。例如 a(1).b(2).c(3)。

鏈式程式設計思想最為關鍵的是,方法的返回值是block,block必須返回物件本身(返回block時,block所在的方法呼叫者物件)block的引數是需要操作的值。;

在ios開發中,使用鏈式程式設計思想最好的代表是 masonry 自動約束布局:

例如:

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

執行流程為:

/*

* mas_makeconstraints執行流程:

1.建立約束製造者masconstraintmaker,並且繫結控制項,生成乙個儲存所有約束的陣列

2.執行mas_makeconstraints傳入的block

3.讓約束製造者安裝約束!

* 1.清空之前的所有約束

* 2.遍歷約束陣列,乙個乙個安裝

*/

可以看出,使用鏈式程式設計,**可讀性較好。

仿照 masnory 使用鏈式程式設計思想寫個運算器:

#import @inte***ce calculatemanager : nsobject

@property (nonatomic, assign) int result;

- (calculatemanager *(^)(int value))add;

- (calculatemanager *(^)(int value))minus;

- (calculatemanager *(^)(int value))multiply;

- (calculatemanager *(^)(int value))devite;

@end

#import

"calculatemanager.h

"@implementation

calculatemanager

- (calculatemanager *(^)(int

))add ;

}- (calculatemanager *(^)(int

))minus ;

}- (calculatemanager *(^)(int

))multiply ;

}- (calculatemanager *(^)(int

))devite ;

}@end

#import

"nsobject+calculate.h

"#import

"calculatemanager.h

"@implementation

nsobject (calculate)

+ (int)ztb_calculatevalue:(void(^)(calculatemanager *make))block

@end

在使用時:

int result = [nsstring ztb_calculatevalue:^(calculatemanager *make) ];

可以在 block 中進行運算了

iOS 開發之 PList 的使用

write data to plist begin nsarray paths nssearchpathfordirectoriesindomains nsdocumentdirectory,nsuserdomainmask,yes nsstring documentsdirectory paths...

IOS開發之NSLock 的使用

在下面的例子中 使用 nslock 使得 執行緒a,b,c,依次執行 若不使用nslock 則執行緒的執行是無序的 nslock的執行原理 某個執行緒a呼叫lock方法。這樣,nslock將被上鎖。可以執行 關鍵部分 完成後,呼叫unlock方法。nslock lock nslock alloc i...

IOS開發之資料sqlite使用

一 引入工具包 引入工具包libsqlite3.dylib,該工具包為c語言工具包。二 運算元據庫 void connectdbelse 建立表 void createtable 插入資料操作 param name 姓名 param age 年齡 param tel void insertname ...