OC下的链式编程

Chain.h

@interface Chain : NSObject

@property (nonatomic, assign) NSUInteger age;
@property (nonatomic, copy  ) NSString *name;

+(Chain *(^)())obj;
-(Chain *(^)(NSUInteger))setAge;
-(Chain *(^)(NSString *))setName;

Chain.m

@implementation Chain

+(Chain *(^)())obj {
    return ^Chain *() {
        return [Chain new];
    };
}

-(Chain *(^)(NSUInteger))setAge {
    return ^Chain *(NSUInteger age) {
        
        self.age = age;
        
        return self;
    };
}

-(Chain *(^)(NSString *))setName {
    return ^Chain *(NSString *name) {
        
        self.name = name;
        
        return self;
    };
}
@end

使用方法:
ViewController.m

//设值
Chain *obj = Chain.obj().setName(@"Georege").setAge(25);
//取值
NSLog(@"name:%@\nage:%lu", obj.name, obj.age);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容