你的位置:
首页
>
软件开发 >
操作系统 > 深入浅出-iOS函数式编程的实现 响应式编程概念
深入浅出-iOS函数式编程的实现 响应式编程概念
发布时间:2016-03-07 13:01:02
原文出处: Yangcs(Yangcs) 简介本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助。配图作为一个iOS 开发者,那 ...
原文出处: Yangcs(Yangcs)
简介
本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit
源码有一定的帮助。
配图
作为一个iOS 开发者,那么你一定用过Masnory/ SnapKit;
- Masonry是一个OC开发中,非常好用的自动布局的第三方框架;
- SnapKit是Masonry团队打造的swift版本的自动布局框架;
make.centerY.equalTo(self.view).offset(100); |
就是这个“.”让Masonry更加鲜活的展示给了开发者,在我心中
- (void)run; | - (void)run{ | - 实例化并调用相关的方法
Person*person = [[Personalloc]init]; | person.runBlock().studyBlock().runBlock(); |
分解目标
[[person run1] study1]; |
2.再实现最终目标
显然,如果想要实现[person run1]调用一个方法,那么run1就需要一个返回一个对象,让这个对象去调用study1。
-(Person*)run1; |
方法的实现
- (Person*)run1 { |
实现最终目标:
person.runBlock().studyBlock().runBlock(); |
在OC中,`()`block是以()
的形式去执行的,猜想如果返回一个block的话,那么我就可以用()
来实现runBlock()这种效果了吧!
- (Person* (^)())runBlock; |
实现:
- (Person* (^)())runBlock { |
再来看一下Masonry的一个函数式编程
make.right.equalTo(self.right).insets(kPadding); |
最终调用的函数:
- (MASConstraint* (^)(id))equalTo { |
函数式编程总结
- 如果想再去调用别的方法,那么就需要返回一个对象;
- 如果想用()去执行,那么需要返回一个block;
- 如果想让返回的block再调用对象的方法,那么这个block就需要返回一个对象(即返回值为一个对象的block)。
响应式编程的概念
在网上流传一个非常经典的解释`响应式编程的概念`
原标题:深入浅出-iOS函数式编程的实现 响应式编程概念
关键词:IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。