目录:
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.png
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,其中还有一张类似的图
legend.png
现在,我们知道了什么是响应式编程,知道了RxSwift中最重要的概念(以时间为索引的常量队列),之后就要了解一下Observable的operators。