实用技巧
使用 RAC 添加一个 backgroundTask
|
|
观察消息的正确姿势
https://github.com/ReactiveCocoa/ReactiveCocoa/issues/365
|
|
doAroundNext
https://github.com/ReactiveCocoa/ReactiveCocoa/issues/1731
|
|
RAC 定时器
如果需要倒计时到0,可以改最后的x.intValue < 0, 如果不需要开始的值,去掉startWith, 订阅一般是收获的阶段,所以尽量不要在订阅的时候加以控制
|
|
在TableViewCell 的 subView 中绑定事件
https://github.com/ReactiveCocoa/ReactiveCocoa/issues/490
|
|
注意 NSCalendar 的使用
内存泄漏
https://zhuanlan.zhihu.com/p/22090471
Operator 操作注意
simple 的使用
https://github.com/ReactiveCocoa/ReactiveCocoa/issues/977
|
|
理解 switchToLatest
解释了就没意思了,大家思考下几个重点的问题吧:
- 为什么要publish self?
- 对connection.signal做FlattenMap干什么?
- 对next value里面的signal为什么要做takeUntil? 而且还是connection.signal
- 为什么要concat一个never信号?
- 最后的return的disposable为什么这样写?
- 分析下取消订阅的过程
|
|
defer
为什么要延迟创建信号呢?是因为创建信号的某些必要的量或者方法只在那时才有效。比如一个信号表示当前时间,需要一个[NSDate date]值,如果创建信号的时候给了[RACSignal return:[NSDate date]],就是未来订阅的时候,得到的仍然是创建的时间。但是用defer就可以订阅得到那时的时间了。
RACObserve cold or hot?
首先它这个冷信号的意义,就是发旧的值和未来的变化值。所以是一个副作用的冷信号,它能保证每次订阅都是按照这个规则,所以各个订阅之间其实没有关系
相当于 [RACSignal retrun:@1]无论订阅多少次都是一样的效果,这个是可以随便重复订阅的,从某种意义上讲,也算是热信号
热信号
如果要拆分信号,在拆分前的信号转换成热信号,防止重复计算
replay 会一直计算过去的值,内存会爆掉,使用 replayLast 会比较好
swichToLatest
dispose 上一个,订阅下一个
flatten:
参数和纬度无关,只和效率相关,参数相当于当前的并发数
contact
相当于 Flatten:1