美文网首页Swift
RxSwift - 入门

RxSwift - 入门

作者: Codepgq | 来源:发表于2018-09-16 21:13 被阅读84次

    目录:

    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.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

    相关文章

      网友评论

        本文标题:RxSwift - 入门

        本文链接:https://www.haomeiwen.com/subject/mrvfnftx.html