ReactiveCocoa基本使用

2022-01-07  本文已影响0人  aven_kang
·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.png
RACSignal *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.png
Merge综合应用
截屏2021-12-11 下午8.15.46.png
·组合操作----Zip
截屏2021-12-11 下午8.17.41.png

SignalA和SignalB这两个信号经过Zip之后呢,什么时候才结束,可以看到SignalB执行到8之后呢,后面已经没有值了,所以结束了,生成了SignalC

·组合操作----CombineLatest
截屏2021-12-11 下午8.23.33.png

这个不依赖于谁先结束,而是看谁是更大的。

·组合操作----Sample
截屏2021-12-11 下午8.26.22.png
·组合操作----TakeUntilReplacement
截屏2021-12-11 下午8.30.12.png
上一篇 下一篇

猜你喜欢

热点阅读