RxSwift - 入门
2018-09-16 本文已影响84人
Codepgq
目录:
RxSwift - 入门
RxSwift Observable Create
RxSwift Subject
RxSwift Combination Operators
RxSwift Transforming Operators
RxSwift Filterning and conditional operators
RxSwift Mathematical and aggregate operators
RxSwift Connectable Operators
RxSwift ErrorHandding Operators
RxSwift Debug Operators
Demo地址
RxSwift 是什么?
RxSwift是Reactive下的一个分支,Reactive涵盖了很多语言。
Reactive是什么意思?
响应式编程,何谓响应式编程?
别急,先看一段简单的代码:
var a = 1
let b = 2
let c = a + b
print(c)
a = 4
print(c)
从上面的代码可以看出来,尽管在输出c
之后,a
改变了,但是结果仍让不会改变。
所谓的响应式就是当a
或者b
发生改变之后,c
的值也随之改变。
如何实现上述需求?
class Num {
var a: Int {
didSet {
c = a + b
}
}
var b: Int {
didSet {
c = a + b
}
}
var c: Int = 0
init(a: Int, b: Int) {
self.a = a
self.b = b
self.c = a + b
}
}
let n = Num(a: 1, b: 2)
print(n.c)
n.a = 4
print(n.c)
1、新建对象,同时初始化
a、b、c
的值
2、打印c的值
3、重新设置a
的值,因为监听了a
的值,所以c
的值被重新赋值了
4、打印c
的值
接下来我们在看看另外一个需求,过滤一个数组的中的奇数.
let numbers = [1,2,3,4,5,6,7,8,9]
print(numbers.filter { $0 % 2 == 0 })
版面 2.png
1、创建一个不可变的数组
2、使用filter过滤掉其中的奇数
看完了上面两个示例,我们分析分析
当我们站在时间的维度上面来看,那么不管是第一个中的init
或者是第二个的初始化数组,都是一个"常量"
,因为一旦执行了,就"不可变"
了。
在RxSwift的世界里面这个东西就叫做Observable,其中还有一张类似的图
现在,我们知道了什么是响应式编程,知道了RxSwift中最重要的概念(以时间为索引的常量队列),之后就要了解一下Observable的operators。