- 链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性提高。
- 链式编程特点:方法的返回值是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
下图是对上面执行流程的详细描述。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/iosbc/2890.html