iOS 链式编程思想

来源:互联网 发布:七招应对网络泄密隐患 编辑:程序博客网 时间:2024/04/30 00:06
  1. 链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性提高。
  2. 链式编程特点:方法的返回值是block,block必须返回对象本身(返回block时,block所在的方法调用者对象)block的参数是需要操作的值。

代表是:masonry框架

下面是链式编程的一个代码实例。为任何一个类添加一个加法计算的功能

使用者ViewController.m的文件中

- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    // 1.让所有的类都可以计算   int result = [self calulate:^(CaculateManager *mgr) {       // 把所有计算封装到CaculateManager       mgr.add(5).add(5);       NSInteger a = mgr.num;//        [[mgr add:5] add:5];    }];    // 方法:返回值:对象本身,参数:需要计算值    NSLog(@"%d",result);}

NSObject+Caculate.h文件中

@class CaculateManager;@interface NSObject (Caculate)// 计算- (int)calulate:(void(^)(CaculateManager *))block;@end

NSObject+Caculate.m文件中

@implementation NSObject (Caculate)// 计算- (int)calulate:(void (^)(CaculateManager *))block{    // 1.创建计算管理者    CaculateManager *mgr = [[CaculateManager alloc] init];    // 2.执行计算    block(mgr);    return mgr.result;}@end

CaculateManager.h文件

@interface CaculateManager : NSObject// 保存结果值@property (nonatomic, assign) int result;//- (instancetype)add:(int)value;- (CaculateManager *(^)(int))add;- (NSInteger)num;@end

CaculateManager.m文件

@implementation CaculateManager- (CaculateManager *(^)(int))add{    // 返回block    // 先定义block//    CaculateManager *(^block)(int) = ^CaculateManager *(int value){//        _result += value;//        return self;//    };    // 返回block    return ^CaculateManager *(int value){        _result += value;        return self;    };}@end

下图是对上面执行流程的详细描述。
执行流程示意图

0 0
原创粉丝点击