ReactiveCocoa的版本演变

ReactiveCocoa的版本演变

2.x 版本

  • 2.x 版本是纯OC的。
  • 在pod的导入方式
pod 'ReactiveCocoa', '~> 2.5'


3.0 版本

  • 从 ReactiveCocoa 3.0 开始包含第一个官方 Swift API,旨在最终完全取代 Objective-C API。
  • 因迁移困难且耗时,且 OC 仍在广泛使用2.x版本,因此 99% 的 RAC 2.x 代码将继续在 RAC 3.0 中保留,也无需任何更改。因为3.0 的变化完全是附加的。
  • 如果纯OC的工程使用 3.0版本,在pod中会报 Swift版本未指定的错误,具体解决办法参考 pod错误处理


4.0 版本

  • 依然包含 2.x的功能代码
  • 仅支持 Swift2.1.x。所以如果使用此版本,在现在swift已经是5.x的情况下,编译时xcode会报错:
    SWIFT_VERSION '2.3' is unsupported, supported versions are: 4.0, 4.2, 5.0.
  • 4.x与3.x 最大的变化是,SignalandSignalProducer运算符被实现为协议扩展而不是全局函数。


5.0 版本后

  • 在 5.0 版本中,ReactiveCocoa 被拆分为多个存储库。
  • 原来和 Swift 相关的核心代码被单独抽取成了一个新框架:ReactiveSwift
  • 原来和 OC 相关的核心代码被单独抽取成了一个新框架:ReactiveObjC。,它具有 2.x 中的所有 OC 代码。
  • 只使用 OC API,则使用ReactiveObjC库。
  • 只使用 Swift API,则使用 ReactiveCocoa库,但还需要ReactiveSwift,它是ReactiveCocoa 的依赖库
  • 同时使用 Swift 和 OC API,则需要ReactiveObjCReactiveCocoaReactiveObjCBridgeReactiveSwift

关于ReactiveObjCBridge。在把 Swift 和 OC 的库拆分之后问题来了,并不是所有的库都是纯 OC 和 Swift 的。有相当大一部分项目处于 OC 迁移到 Swift 过程中,其中可能使用 Swift 调用了 RAC 2 中基于 OC 写的 API。为了解决这部分用户的问题,所以有了 ReactiveObjCBridge 。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。