什么是RXSwift?
- RX(ReactiveX),一种跨平台的标准,目前很多开发语言都有Rx的库,包括RxJava、RxJS、Rx.NET、RXSwift等。
- RxSwift是Swift函数响应式编程的一个开源库,它主要是提供了一种在Swift语言下可以轻易写出响应式函数式的功能实现。
理解:之前传递事件方式有:delegate、notification、kvo、target-action等等,这些方式中有需要写代理协议,有些需要注册通知,有些需要新建一些类。RxSwift和RxCocoa的出现改变了这一套。RxSwift最基础的实现,是基于Observable,就像一条数据流,当新的数据出现,它就会通知它的Subscriber去做对应的处理,使得事件传递全部替换成 rx 的信号链。
Observable介绍
Observable,中文翻译过来是 可观察的,它实质上是一个Sequence(序列),所以称它为可观察序列。
序列分为有穷序列和无穷序列,主要就是用来形成一条数据流。有穷序列,比如通过网络来获取一张图片这一个过程,数据是有限的,图片下载完了,序列也就迎来闭合了。无穷序列,比如我们对UI的监测可能是无穷的,比如某个手势、某次按钮的点击、横竖屏切换等等。
Observable是一个观察者模式中被观察的对象,相当于一个事件序列,它会异步地产生一系列Event,并发送给它订阅者。
Observable的三种事件
Observable里有三种事件——next, completed, error:
-
next事件主要是当Observable里出现新的数据时会发出的事件,同时该事件会携带新的数据对象。
-
completed事件是当Observable不再有新的数据出现,Observable被标记完成,并且将数据流终结。
-
error事件是指当数据流遇到了错误会发出的事件,该事件也会导致Observable被终结。被终结的Observable不会再有任何的事件发出。
public enum Event {
/// Next element is produced.
c