·RACSignal使用基础
·RACSignal各类操作
RACSignal的基础使用
截屏2021-12-11 下午4.21.39.png截屏2021-12-11 下午4.23.13.png
订阅一个信号的方式
截屏2021-12-11 下午4.26.58.png订阅过程
截屏2021-12-11 下午4.26.58.png元组-----RACTuple
·RAC定义的一种数据类型
·NSArray的简化版
·其他语言中的意义
·使用
信号示例
截屏2021-12-11 下午5.11.14.png截屏2021-12-11 下午5.13.52.png
截屏2021-12-11 下午5.14.34.png
截屏2021-12-11 下午5.18.19.png
截屏2021-12-11 下午5.18.49.png
RACSignal各类操作
·单个信号的变化
·多个信号的组合
·高阶操作
-单个信号的变换
截屏2021-12-11 下午5.21.14.png-值操作----Map
截屏2021-12-11 下午5.22.56.png-值操作----MapReplace
截屏2021-12-11 下午5.24.57.png-值操作----ReduceEach
截屏2021-12-11 下午5.26.35.png-值操作----其他
截屏2021-12-11 下午5.27.24.png-数量操作--Filter
截屏2021-12-11 下午5.32.12.png-数量操作--Ignore
截屏2021-12-11 下午5.33.53.png-数量操作--Take
截屏2021-12-11 下午6.01.29.png-数量操作--Skip
截屏2021-12-11 下午6.02.45.png-数量操作--Take&Skip
截屏2021-12-11 下午6.04.17.png-一些混合操作
截屏2021-12-11 下午6.05.30.png·数量操作--StartWith
截屏2021-12-11 下午6.07.37.png·数量操作--Repeat
截屏2021-12-11 下午6.09.15.png·数量操作---Retry
截屏2021-12-11 下午6.11.05.pngRACSignal *signalB = [signalA retry]
这里如果不接次数的话,将会无限循环,即使错误了,也会无限尝试,跟上面的Repeat有点像
-其他操作
截屏2021-12-11 下午6.20.29.png-数量操作----Aggregate
截屏2021-12-11 下午7.46.46.png-数量操作----Scan
截屏2021-12-11 下午7.49.42.png·Aggregate&Scan变种
截屏2021-12-11 下午7.51.02.png时间操作----有用的信号
截屏2021-12-11 下午7.55.49.png·时间操作-----Delay
截屏2021-12-11 下午7.59.04.png·时间操作----THrottle
截屏2021-12-11 下午8.01.57.png多个信号的组合
·受哪个信号终止而终止
·错误传递
·各个信号何时开始订阅
--组合操作----Concat
截屏2021-12-11 下午8.05.24.png需要注意,信号1必须要有终止
--组合操作发生错误时
截屏2021-12-11 下午8.07.25.png如果信号一发生了错误,信号二没错误,那么得到的信号三,也是错误的
截屏2021-12-11 下午8.07.49.png
如果信号1没问题,信号2出错了,那么信号3得到的也是一个错误
·组合操作----Merge
截屏2021-12-11 下午8.10.06.pngMerge综合应用
截屏2021-12-11 下午8.15.46.png·组合操作----Zip
截屏2021-12-11 下午8.17.41.pngSignalA和SignalB这两个信号经过Zip之后呢,什么时候才结束,可以看到SignalB执行到8之后呢,后面已经没有值了,所以结束了,生成了SignalC
·组合操作----CombineLatest
截屏2021-12-11 下午8.23.33.png这个不依赖于谁先结束,而是看谁是更大的。
网友评论