[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    

完毕。

猜你喜欢

转载自www.cnblogs.com/OranBlog/p/11592017.html