不讲废话,相信来学RxSwift的同学,都对响应式编程(reactive programing)有了概念层面上的认识,在此,我们只向大家介绍RxSwift中的关键点。不多说了,上干货了
什么是Observables
在RxSwift中,被提到最多的一个东西就是它----Observables(可观测量)。那么什么是Observables呢。下面是官方文档对它的定义:
简而言之就是:Observables是Rx的心脏,observable、observable sequence、sequence是一个东西,在极客口中,他们被称作sequence(序列)即“流”。在RxSwift中,万物皆序列,也可以说是万物皆流。万物包括对象object,事件event,代理delegate等等。
Observables的生命周期
在Rx中,Observables的生命周期有三种情况:
1、observable发出包含许多元素的next事件,直到出现以下情况,observable停止:
2、发出一个error事件且被终止;
3、发出一个completed事件且被终止。
另:一旦observable被终止,其将不能再发出任何事件。
即:
创建observables
如下例:(可在playground中使用大括号内部代码,记得导入Rx)
在这个例子中,我们定义了几个integer常量,以备范例使用;创建了一个Int类型的observable sequence,使用了携带‘one’整型的just方法
just是一个很恰当的方法,其意为“仅仅”,也就是说,just方法里只能携带一个元素。just是关于Observables的一个类型方法。在Rx中,方法被称作为operator(操作符)。如若添加以下代码:
发现不同了吗,这一次,我们并没有明确observable2的类型,但是,系统根据你后面的赋值,推测出你所创建的observable2是一个Int类型的序列,而非Array类型的。这是因为,of操作符操作了“经由observables的元素推理出的可变参数类型”。
如果想创建一个Array类型的observable,只需要,在of操作符后面添加一个数组即可,如下:
当然,有of,就一定有from,如下
这个from操作符是啥意思呢,我们来看看官方给的解释:The from operator creates an observable of individual type instances from a regular array of elements.翻译过来就是:from操作符从一个常规的元素数组中创建一个单个类型实例的observable。另:from操作符只能作用于数组。
小结:学习了什么是序列(或者说流)、Observables的生命周期(next,error,completed及“序列终止不能发出新事件”)、如何创建observables以及三个操作符:just(只能携带一个元素的操作符),of(确定序列类型的操作符),from(从数组中创建一个单个类型实例的observable)