ReactiveCocoa_Signal

需要重新整理

本文是对Reactive_event初步归纳记录,理解较浅、可能有误、后续完善

Signal在RAC中用来表示正在进行中的事件流,比如通知、用户输入等等,使用者可以注册对事件流的观察成为观察者,观察事件流中所包含的事件。随着任务的进行,这些任务的状态或结果被封装Event类型,并发送到事件流中,然后事件流再把这些事件推送给所有的观察者。
事件流是创造者驱动、基于推送的,推送就是前面提到的把事件推送到所有的观察者,创造者即是Signal Producer,简单理解它就是用来创造、改变事件流的,后续会有描述。所有的观察者只能观察,并不能对数据流产生副作用,且一个事件流所有的观察者所接收到的事件都是一样的。
Signal提供了两种创建方式Sigal.pip()Signal.init(),

test1
1
2
3
4
5
func text1() {

let (signal, observe) = Signal<String, NoError>.pipe()

}

RAC对观察者Observers的定义是:事件流推送事件的任意对象,这些对象正在等待接受、或者可以等待接受事件流所推送的事件,可以通过Signal.observe或者SignalProducer.start隐式创建一个观察者。

显示 Gitment 评论