[OC] 链式语法
我们新建了一个类,叫做
OJClass (这可以是 ViewController,UIView,NSObject 等各种类型的类,这里我们把它以UIView进行举例)
现在我们想要用链式语法的方式来设置这个类,比如下面这样:
OJClass.setOJTitle(@"三体").setOJSecondTitle(@"面壁计划").setOJBackgroundColor([UIColor blackColor]);
首先,我们在 OJClass.h 的 interface 中定义上述几个属性(实际上都是block)
@interface OJClass : UIView /* - (类名 *(^)(传入数据类型 传入变量名)) 属性block名称; */ //设置大标题 - (OJClass *(^)(NSString *title)) setOJTitle; //设置小标题 - (OJClass *(^)(NSString *secondTitle)) setOJSecondTitle; //设置背景色 - (OJClass *(^)(UIColor *color)) setOJBackgroundcolor; @end
在 OJClass.m 中进行这几个block的实现:
@implementation OJClass ......... - (OJClass *(^)(NSString *title)) setOJTitle { return ^id(NSString *title){ //此处只是做示范,用传入的参数执行操作,然后return self; self.titleLbl.text = title; return self; }; } - (OJClass *(^)(NSString *secondTitle)) setOJSecondTitle { return ^id(NSString *title){ //此处只是做示范,用传入的参数执行操作,然后return self; self.secondTitleLbl.text = secondTitle; return self; }; } - (OJClass *(^)(UIColor *color)) setOJBackgroundColor { return ^id(UIColor *color){ //此处只是做示范,用传入的参数执行操作,然后return self; self.backGroundColor = color; return self; }; } @end
完毕。