链式编程学习(二)

来源:互联网 发布:查看linux版本 编辑:程序博客网 时间:2024/05/02 05:05

为使所有对象都具有计算的功能,可以使用类目对NSObject进行扩展

NSObject+Caculator.h

#import <Foundation/Foundation.h>#import "CalulatorMaker.h"@interface NSObject (Caculator)+(int)makeCaculator:(void(^)(CalulatorMaker * make))block;@end

NSObject+Caculator.m

#import "NSObject+Caculator.h"@implementation NSObject (Caculator)+(int)makeCaculator:(void (^)(CalulatorMaker * make))block{    //计算者    CalulatorMaker *maker = [[CalulatorMaker alloc]init];    //计算    block(maker);    return maker.result;}@end

调用:

int result = [NSObject makeCaculator:^(CalulatorMaker * maker) {         maker.add(1).add(2);    }]; NSLog(@"%d",result);
0 0