zoukankan      html  css  js  c++  java
  • RXSwift

    一、Rx 介绍

    1,什么是 Rx?

    • Rx是 ReactiveX的缩写,简单来说就是基于异步 Event(事件)序列的响应式编程。
    • Rx可以简化异步编程方法,并提供更优雅的数据绑定。让我们可以时刻响应新的数据同时顺序地处理它们。

    2,Rx 库

    • Rx本身可以说是一种跨平台的标准,它有自己的社区论坛,不管是web还是移动开发,都能用 Rx的思维和方法来完成你的工作。
    • 作为一种跨平台标准,目前已经有许多基于不同开发语言的 Rx的库。除了我后面会着重介绍的 RxSwift之外,还有 RxJava, RxJS, RxKotlin, Rx.NET...等等。
    • 这些 Rx库虽然用的语言不同,但它们之间其实都是相通的,都有相同的 API。所以说如果以后你使用别的语言做其他的方面的开发,同样是可以使用相同的思维甚至相同的方法接口(除了语言不同)来编程。

    3,Rx 主页

    • 如果想了解整个 Rx大家庭的成员,可以访问它的主页
    • 在这里我们可以看到所有支持的语言,以及平台:
     
     

    二、RxSwift 介绍

    1,RxSwift 的作用

    (1)在编写代码时我们经常会需要检测某些值的变化(比如:textFiled输入值的变化、数据请求完成或失败的变化),然后进行相应的处理。

    • 过去针对不同的情况,我们需要采用不同的事件传递方法去处理,比如:delegatenotifinotiontarget-actionKVO等等。
    • 而 RectiveX机制(由 RxSwift实现)的出现,让程序里的事件传递响应方法做到统一。将之前那些常用的事件传递方法(比如:delegatenotificationtarget-action等等),全部替换成 Rx的“信号链”方式。

    (2)如果我们平时使用的是 MVVM开发模式的话,通过RxSwift可以获得更加方便的数据绑定的方法,使得 MVVM开发更加如虎添翼。

    2、RxSwift 的安装与配置

    (1)手动

    (1)从 GitHub上下载最新的代码

    (2)将下载下来的源码包中 Rx.xcodeproj拖拽至你的工程中

    (3)工程 -> General-> Embedded Binaries项,把 iOS 版的 RxSwift.frameworkRxCocoa.framework添加进来

    (2)CocoaPods

    pod --version: 1.3.1已通过测试”

    # Podfile
    use_frameworks!
    
    target 'YOUR_TARGET_NAME' do
        pod 'RxSwift',    '~> 4.0'
        pod 'RxCocoa',    '~> 4.0'
    end
    
    # RxTests 和 RxBlocking 将在单元/集成测试中起到重要作用
    target 'YOUR_TESTING_TARGET' do
        pod 'RxBlocking', '~> 4.0'
        pod 'RxTest',     '~> 4.0'
    end”
    

    替换 YOUR_TARGET_NAME然后在 Podfile目录下, 终端输入:

    $ pod install
    
    (3)Carthage

    carthage version: 0.26.2已通过测试

    添加到Cartfile

    github "ReactiveX/RxSwift" ~> 4.0
    
    $ carthage update
    
    最后,在需要使用 RxSwift 的地方 import 进来就可以了
    import RxSwift
    import RxCocoa
    

    3、RxSwift 与 RxCocoa

    前面配置的时候,我们会在 Swift项目中引入 RxSwiftRxCocoa这两个库,他们的作用分别是:

    • RxSwift:它只是基于 Swift语言的 Rx标准实现接口库,所以 RxSwift里不包含任何 Cocoa或者 UI方面的类。
    • RxCocoa:是基于 RxSwift针对于 iOS开发的一个库,它通过 Extension的方法给原生的比如 UI控件添加了 Rx的特性,使得我们更容易订阅和响应这些控件的事件。



  • 相关阅读:
    杭电1029--Ignatius and the Princess IV(哈希)
    杭电1465--不容易系列之一
    杭电1021--Fibonacci Again
    杭电5018--Revenge of Fibonacci
    UVa10651(记忆化搜索)
    <Win32_5>深入浅出Win32的计时器
    偷个空,写个博客——各种沟通各种纠结
    Arbitrage HDU
    常用的字符串处理方法
    无法捕获的异常:MissingMethodException
  • 原文地址:https://www.cnblogs.com/xukuangbo/p/9529314.html
Copyright © 2011-2022 走看看