iOS中的链式编程

iOS开发过程中链式编程平时运用的最多的应该就是 Masonry的约束,刚开始用masonry时就感觉莫名其妙,只是按照规则用”.”把一系列设置连接起来,感觉可读性很好并没有深入探究,偶尔看到链式编程的思想,就是以Masonry举得例子,才认识到这其实是一种让代码可读性更强,也能提高开发效率的一种思想,决定好好探究一下。其实在oc中实现链式编程只要巧妙运用Block就行了。平时大家用的最多的调用实例方法是传统的[obj method];其实实例方法都可以用点语法调用(类方法不行,也许我孤陋寡闻吧,以前没用.调用过方法)。oc的链式编程就是用点语法一个一个方法连着调用,然后形成链式,加上方法名称命名清晰,然后就读起来很容易懂。要实现能够连续不断调用就需要在上一个调用完返回值是这个实例本身,也就是self,上代码吧,还是很容易懂的。
#import <Foundation/Foundation.h>

@interface Man : NSObject
- (
Man *)washHair; // 洗头
- (
Man *(^)( NSString * place))goTo; // 去某个地方
- (
Man *(^)( NSString * girl))meet; // 约会一个妹子
@end

#import "Man.h"

@implementation Man
- (
Man *)washHair{
   
NSLog ( @" 某程序猿早上洗头出门 " );
   
return self ;
}

- (
Man *(^)( NSString *))goTo{
   
return ^( NSString * place){
       
NSLog ( @" %@" ,place);
       
return self ;
    };
}

- (
Man *(^)( NSString *))meet{
   
return ^( NSString * girl){
       
NSLog ( @" 约会 %@" , girl);
       
return self ;
    };
}
@end

调用:
    Man * man = [[ Man alloc ] init ];
    man.washHair.goTo(@"西湖").meet(@"妹子");

第一个方法washHair不需要参数,我们只需要返回一个self就可以,不需要写在Block里面,后面的需要参数,相当于把一个方法放在了一个Block里面用()调用Block

最后,平时可以用链式方法来写的情况我觉得,1.封装一些自定义View的时候,一系列颜色等等的设置我觉得可以用链式写法,2.一系列连续并有序的调用方法,可以尝试写成链式。3.拆分一些比较庞大的嵌套调用,分解成链式调用 欢迎大家补充,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值