美文网首页iOS开发进阶
IOS_编程思想_链式编程练习

IOS_编程思想_链式编程练习

作者: _CLAY_ | 来源:发表于2017-10-30 12:55 被阅读23次

    在之前的两篇文章中已经简单的介绍了IOS的编程思想,那在此处写一个链式编程的联系来加深对链式编程思想的理解!!!


    First创建一个Category的分类
    NSObject+Sum.h

    #import <Foundation/Foundation.h>
    #import "SumManager.h"
    @interface NSObject (Sum)
    //将所有计算的方法放在里面
    - (int)BC_MakeSum:(void(^)(SumManager *mgr))block;
    @end
    

    NSObject+Sum.m

    #import "NSObject+Sum.h"
    @implementation NSObject (Sum)
    - (int)BC_MakeSum:(void(^)(SumManager *mgr))block {
    //    1.创建mgr
        SumManager *mgr = [[SumManager alloc] init];
    //    2.调用block
        block(mgr);
    //    3.管理者mgr的result属性就有值了
        return mgr.result;
    }
    @end
    

    Second创建一个SumManager的管理者
    SumManager.h

    #import <Foundation/Foundation.h>
    @interface SumManager : NSObject
    @property (nonatomic,assign) int result;
    - (SumManager *(^)(int value))add;
    @end
    

    SumManager.m

    #import "SumManager.h"
    @implementation SumManager
    - (SumManager *(^)(int value))add {
        return ^(int value) {
            _result += value;
            return self;
        };
    }
    @end
    

    在ViewController里可以调用使用

    #import "ViewController.h"
    #import "NSObject+Sum.h"
    
    @implementation ViewController
    - (void)viewDidLoad {
        [super viewDidLoad];
       
        int result = [self BC_MakeSum:^(SumManager *mgr) {
            mgr.add(10).add(20);
        }];
    //  mgr.add(10).add(20)...
        NSLog(@"现在的结果为:%d",result);
    }
    @end
    

    相关文章

      网友评论

        本文标题:IOS_编程思想_链式编程练习

        本文链接:https://www.haomeiwen.com/subject/bgyppxtx.html