首先我們看一下使用masonry對控制項進行布局的**格式。
[self.bottomview1 mas_makeconstraints:^(masconstraintmaker *make) ];
上邊這段**有特點
使用點語法
可以進行鏈式呼叫
那麼實現鏈式程式設計就需要解決上邊兩個問題。
/*
* function.h
*/#import @class function1;
typedef void(^mblock)();
@inte***ce function1 : nsobject
- (mblock)function;
@end
/** function.m
*/#import "function1.h"
@implementation function1
- (mblock)function;
}@end
/** 呼叫
*/- (void)viewdidload
使用這種方式就可以做到點語法呼叫方法。但是我們可以發現這種寫法無法傳入引數。接下來我們繼續解決這個問題。
/*
* function2.h
*/#import @class function2;
typedef void(^mblock1)(nsstring *str);
@inte***ce function2 : nsobject
- (mblock1)function;
@end
/** function.m
*/#import "function2.h"
@implementation function2
- (mblock1)function;
}@end
/** 呼叫
*/- (void)viewdidload
通過給block加入引數,這樣在使用點語法呼叫方法時返回乙個block,通過給block加入引數即可達到目的。接下來就剩下最後乙個問題:如何實現鏈式呼叫。
/*
* function.h
*/#import @class function3;
typedef function3 *(^mblock2)(nsstring *str);
@inte***ce function3 : nsobject
- (mblock2)function;
@end
/** function.m
*/#import "function3.h"
@implementation function3
- (mblock2)function;
}@end
/** 呼叫
*/- (void)viewdidload
iOS鏈式程式設計
nsinteger result adder.add 4 sub 1 mult 2 div 3 表示 4 1 2 3,是不是很方便很直觀。我們知道,如果是c 的實現話鏈式操作是很簡單的,因為c 的函式呼叫就是通過點操作呼叫的,只需要返回物件本身就可以實現鏈結了。但是oc就不行了,因為oc的點操作表示...
iOS中的鏈式程式設計
ios開發過程中鏈式程式設計平時運用的最多的應該就是 masonry的約束,剛開始用masonry時就感覺莫名其妙,只是按照規則用 把一系列設定連線起來,感覺可讀性很好並沒有深入 偶爾看到鏈式程式設計的思想,就是以masonry舉得例子,才認識到這其實是一種讓 可讀性更強,也能提高開發效率的一種思想...
黑魔法 iOS鏈式程式設計
在使用sdautolayout 時就已經發現這種鏈式程式設計。通過 將屬性鏈結在一起形成如同一條鏈的程式設計方法。self.totalmoneycount sd layout.leftequaltoview self rightequaltoview self topspacetoview self...