ReactiveCocoa应用篇(一)

作为函数式编程和响应式编程的代表ReactiveCocoa,自一出世便受到广大码农的热爱,结合MVVM编程模式,不仅能够方便的处理各种交互事件、降低模块间的耦合性,还能简化项目结构,降低阅读和维护的成本。本文从应用的角度,介绍一下ReactiveCocoa常用类的用法:

一、RACSignal

1. 功能

这是ReactiveCocoa的核心类,用来表示数据传递,只要有数据变化,信号内部受到数据后,就会马上发出数据

2. 使用步骤

  • 创建信号

  • 订阅信号

  • 发送信号

具体使用如下:

3. RACSubscriber

这是信号的订阅者,本质是一个协议,遵守这个协议的类对象,并且实现协议方法就可以成为一个订阅者

4. RACDisposable

这是用于取消订阅或者清理资源的类,当信号发送完成或者发送错误的时候会自动触发调用

二、RACSubject

1. 功能

信号的提供者,被成为是信号的信号,即自己可以充当信号,也能够发送信号,常用来代理代理。

2. 使用步骤

  • 创建信号

  • 订阅信号

  • 发送信号

具体使用如下:

替换代理:

三、RACRelaySubject

1. 功能

继承自RACSubject,特点是 订阅信号发送信号 没有先后顺序,而RACSubject就必须先订阅后发送。常用解决创建信号的block会带来副作用的场合,以及限制缓存值的数量

2. 使用步骤

RACRelaySubject的使用步骤和RACSubject类似,只是 订阅信号发送信号 没有先后顺序

具体使用如下:

四、RACCommand

1. 功能

用于处理各种事件的类,可以把事件如何处理和数据如何传递,封装到这个类中,方便监控事件的执行过程,常用来处理网络请求场景

2. 使用步骤

  • 创建命令

  • 创建signalBlock,并返回信号

  • 执行命令

具体使用如下:

五、RACMulticastConnection

1. 功能

用于当一个信号,被多次订阅时,为了保证创建信号时,避免多次调用创建信号中的block,造成副作用,可以使用这个类处理

2. 使用步骤

  • 创建信号

  • 创建信号

  • 订阅信号

  • 连接发送信号

具体使用步骤:


未完待续…

感觉不错,打个赏?
微信                                 支付宝
pay_weixin            pay_zhifubao
金额随意 快来“”我呀~
联系方式:kelvin@fishbay.cn

发表评论

电子邮件地址不会被公开。 必填项已用*标注