ReactSwift 入门 -1

前言:

相信使用过ReactCocod 的小伙伴们都对其灵活的事件处理方式赞不绝口,尤其是在MVVP模式的情况下,极大的提高了程序的可读性和简洁性。但随着 swift 的后来居上,越来越多的同行们已经或者正在swift 的坑里一往无前, 原有的 ReactCocod 框架中 处于混编模式的 swift 部分越来越无法满足大众的需求,因此在 RAC 5.0 中 苹果重点 抽取除了 其中的 swift 部分,整理成 ReactSwift 供广大开发者学习使用, swift 特有的点语法 与 ReactSwift 追求的 函数响应式 编程思想 相得益彰,下面就让我们一起来学习 ReactSwift 吧。

正文:

ReactSwift 主要通过 信号流的方式传递事件/值,首先 我们需要创建 信号发生器(SignalProducer), 用于组织管理信号(类似于一场球赛的组织者),由其 创建信号并管理信号的发送传递(组织,开始球赛), 其次 需要创建 信号观察者(Observer),用于观察信号传递过程中值属性的改变或者事件属性的进展(球场的裁判员,时刻关注比方,并观察提示球员的犯规情况), 当管理者把比赛所需场地,人员,等种种 所需准备到位后,就只等 裁判进场,一声令下开始比赛了: SignalProducer.start(Observer),, 具体代码如下

//注意此处必须导入 Result 用于事件结果控制
import ReactiveSwift
import Result

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    
    self.testAction()
    // Do any additional setup after loading the view, typically from a nib.
}

private func testAction(){
    
    //创建冷信号发生器
    let producter = SignalProducer.init { (observer, _) in
        
        //值信号
        print("订阅值信号")
        observer.send(value: "宋1")
        observer.send(value: "宋2")
    }


    //创建观察者
    let subscriber1 = Signal.Observer.init(value: { (value) in
        
        print("开始第一个观察\(value)")
    }, failed: { (error) in
        
        print("开始第一个观察失败")
    }, completed: {
        
        let a = 1
        print("\(a)")
        
    }, interrupted: nil)
    

    let subscriber2 = Signal.Observer.init(value: { (value) in
        
        print("开始第二个观察\(value)")
    }, failed: { (error) in
        
    }, completed: {
        
        let a = 2
        print("\(a)")
    }, interrupted: nil)
    

    
    //开始启动观察
    producter.start(subscriber1)
    
    
    producter.start(subscriber2)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

输出结果如下:

ReactSwift 入门 -1_第1张图片
710F9B07-6071-4F6D-98C5-DAC13D434EB7.png

注意使用cocopods 导入swift 库时,如果总是报错,请检查第三方库的导入版本与当前xcode 支持的 swift 版本是否一致

你可能感兴趣的:(ReactSwift 入门 -1)