为了账号安全,请及时绑定邮箱和手机立即绑定

RxSwift 01 - ReactiveCocoa 与 RxSwift

2018.06.02 16:47 1931浏览

简介

如今,函数响应式编程成为越来越受开发者喜欢的编程方法。原因很简单,它能使复杂的异步代码容易地编写和理解,以及 MVVM 设计模式的兴起。目前的两个 iOS 最流行的函数响应式编程库分别是 ReactiveCocoa 与 RxSwift。

ReactiveCocoa

ReactiveCocoa 是一个比较老的开源项目,从 Objective-C 时期开始,后来从 3.0 开始支持了 Swift (可以通过 bridge 在 Objective-C 下使用),接着就完全停止了在 Objective-C 上的维护,到了 5.0 更是将 RAC 拆分为四个库:ReactiveCocoa、ReactiveSwift、ReactiveObjC、ReactiveObjCBridge,用于区分 Objective-C 和 Swift 开发。之前我总结过一篇 ReactiveCocoa 入门 的文章,里面简单介绍了下 ReactiveCocoa 的组织框架,这里就不详细介绍了。

推荐阅读汇总:干货集结地

RxSwift

RxSwift 项目的时间短一些,但是 ReactiveX 社区充满了活力。关于 RxSwift 有一件重要的事是项目是按照 ReactiveX 这个组织的规定下开发的,并且所有其他语言的 Rx 项目也是一样。如果学会了如何使用 RxSwift,再去学习 Rx.Net , RxJava 或者 RxJS 等就是小菜一碟,只是语言语法上的差异。【PS:这个思想一致通用是我十分喜欢的一点,哈哈哈】

强烈推荐 RxSwift 学习文章(我就是看了下面的文章入门的):

ReacticeCocoa Vs RxSwift

1. 冷信号和热信号

冷信号:(例如网络请求)

  • 是被动的,只有当你订阅的时候,它才会发布消息
  • 只能一对一,当有不同的订阅者,消息是重新完整发送。

热信号:(例如 UI 交互)

  • 是主动的,尽管你并没有订阅事件,但是它会时刻推送,
  • 可以有多个订阅者,是一对多,集合可以与订阅者共享信息。

ReactiveCocoa 对冷信号和热信号的区别是很看重的,而 RxSwift 则不需要考虑是冷信号还是热信号。

关于冷热信号的更加细节的介绍,可以看以下文章:

2. 社区支持

相对于 RxSwift 背后的 ReactiveX 大社区的活跃支持,ReactiveCocoa 的社区支持明显是不足的,更多的是网上多年累月积累的在线教程,在社区支持方面 RxSwift 是有很大优势的。

3. 总结

实际上2个框架还有很多细节差异,但不管是 RxSwift 还是 ReactiveCocoa 框架,都是功能极其强大的框架,而且很多东西是相通的,在两者之间来回切换只是几个小时的问题。如果你之前学习过 Swift ,我个人推荐是从 RxSwift 入手,如果是只学习过 Objective-C 的话,还是从 ReactiveCocoa 入手好点。【PS: 我个人是偏爱 RxSwift 一点的,O(∩_∩)O哈哈~】

点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消