iOS 连式语法


title: iOS 连式语法
date: 2016-05-04 20:58:26
tags:


@interface NSObject (LianShi)

+ (int)makeCalculate:(void (^)(CaculatorMaker *))block;

@end

@implementation NSObject (LianShi)
// 定义事件
+ (int)makeCalculate:(void (^)(CaculatorMaker *))block
{
    CaculatorMaker *caculatorMaker = CaculatorMaker.new;
    if (block) {
        block(caculatorMaker);
    }
    return caculatorMaker.all;
}

@end

@interface CaculatorMaker : NSObject

/** <##> */
@property int all;

- (CaculatorMaker *(^)(int value, int value2))add;

- (CaculatorMaker *(^)(int))sub;

@end

@implementation CaculatorMaker

- (CaculatorMaker *(^)(int value, int value2))add
{
    // return一个匿名block,参数int类型,block返回类型 CaculatorMaker *
    return ^CaculatorMaker *(int value, int value2) {
        NSLog(@"%d %d", value, value2);
        _all += value;
        return self;
    };
}

- (CaculatorMaker *(^)(int))sub
{
    return ^CaculatorMaker *(int value) {
        NSLog(@"%d", value);
        _all += value;
        return self;
    };
}

@end

// 用法
int all = [NSObject makeCalculate:^(CaculatorMaker *caculatorMaker) {
        caculatorMaker.add(2, 3).sub(5);
    }];
    NSLog(@"%d", all);


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,035评论 3 119
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,942评论 1 180
  • 一一写在女儿的十四岁生日 宝贝儿: 生日快乐! 今天是你十四岁生日,而你,现在正坐在考场里,用自己的努力...
    玫兰妮阅读 3,573评论 0 0
  • 你是不是也有过这样的感觉,明明那个人还在,你还有着他所有的联系方式,可以打电话,可以发信息,但你却什么也做不了。有...
    杯莫亭阅读 2,425评论 0 0
  • 柔语清晰嘘寒问暖带着微笑温柔看着我我不敢看他就算在我的梦里我也不敢抬头看着他
    雨天沙滩阅读 1,079评论 1 2