码无界IOS And AndroidiOS进阶不易的地方iOS开发攻城狮的集散地

iOS中利用链式编程思想实现计算器

2016-07-27  本文已影响360人  打电话记错号码的人

作品链接:http://www.jianshu.com/users/1e0f5e6f73f6/top_articles

1.声明加减乘除和结果的方法

@property (nonatomic, assign) int result;

- (PHCalculateManager *(^)(int))add;
- (PHCalculateManager *(^)(int))minus;
- (PHCalculateManager *(^)(int))multiply;
- (PHCalculateManager *(^)(int))divide;

2.实现加减乘除的方法

- (PHCalculateManager *(^)(int))add
{
    return ^(int value){
        _result += value;
        return self;
    };
}
- (PHCalculateManager *(^)(int))minus
{
    return ^(int value){
        _result -= value;
        return self;
    };
}

- (PHCalculateManager *(^)(int))multiply
{
    return ^(int value){
        _result *= value;
        return self;
    };

}

- (PHCalculateManager *(^)(int))divide
{
    return ^(int value){
        _result /= value;
        return self;
    };

}

3.创建计算管理者

+ (int)PH_makeCalculate:(void (^)(PHCalculateManager *))block
{
    // 创建计算管理者
    PHCalculateManager *calculateManager = [[PHCalculateManager alloc] init];
    // 执行计算
    block(calculateManager);

    return calculateManager.result;
}

4.调用计算管理者

- (void)viewDidLoad {
    [super viewDidLoad];
int result = [NSObject PH_makeCalculate:^(PHCalculateManager *calculateManager) {

        calculateManager.add(10).minus(2).multiply(5).divide(4);
    }];

    NSLog(@"%d",result);

}
上一篇 下一篇

猜你喜欢

热点阅读