1.RAC操作方法之映射(flattenMap,Map)
flattenMap,Map:用于把源信号内容映射成新的内容
flattenMap的作用:把源信号的内容映射成一个新的信号,信号可以是任意类型
flattenMap的使用步骤:
1.传入一个block,block类型是返回值RACStream,参数value
2.参数value就是源信号的内容,拿到源信号的内容做处理
3.包装成RACReturnSignal信号,返回出去
map的作用:把源信号的值映射成一个新的值
map的使用步骤:
1.传入一个block,类型是返回对象,参数是value
2.value就是源信号的内容,直接拿到源信号的内容做处理
3.把处理好的内容直接返回就好了,不用包装成信号,返回的值,就是映射的值
concat:按一定的顺序拼接信号,当多个信号发出的时候,有顺序的接受信号
then:用于连接两个信号,当地一个信号完成,才会连接then返回的信号
//注意使用then的时候,之前的信号会被忽略掉
// 底层实现:1、先过滤掉之前的信号发出的值。2.使用concat连接then返回的信号
merge:把多个信号合并为一个信号,任何一个信号有新值的时候就会被调用
zipWith:把两个信号压缩成一个信号,只有当两个信号同时发出信号内容的时候,并且把两个信号的内容合并成一个元组,才会触发压缩流的next事件
combineLatest:将多个信号合并起来,并且拿到各个信号的最新的值,必须每个合并的signal至少都有一次sendNext,才会触发合并的信号
reduce����聚合:用于信号发出的内容是元组,把信号发出元组的值聚合成一个值
filter:过滤信号,使用它可以获取满足条件的信号
ignore:忽略完某些值的信号
distinctUntilChanged:当上一次的值和当前的值有明显的变化就会发出变化,否则就会被忽略掉
take:从一开始一共取N次的信号
takeLast:取最后N次的信号,前提条件,订阅者必须调用完成,因为只有完成,就知道总共有多少信号
takeUntil:(RACSignal *):获取信号直到某个信号执行完成
skip:(NSUInteger):跳过几个信号,不接受
switchToLatest:用于signalOfSignals(信号的信号),有时候信号也会发出信号,会在signalOfSignals中,获取signalOfSignals发送的最新信号
timeout:超时,可以让一个信号在一定的时间后,自动报错。
interval 定时:每隔一段时间发出信�号
delay 延迟发送next
retry重试 :只要失败,就会重新执行创建信号中的block,直到成功.
replay重放:当一个信号被多次订阅,反复播放内容
throttle节流:当某个信号发送比较频繁时,可以使用节流,在某一段时间不发送信号内容,过了一段时间获取信号的最新内容发出。