网站首页 > 技术教程 正文
RAC 5.0 相比于 4.0 有了巨大的变化,不仅是受 swift 3.0 大升级的影响,RAC 对自身项目结构的也进行了大幅度的调整。这个调整就是将 RAC 拆分为四个库:ReactiveCocoa、ReactiveSwift、ReactiveObjC、ReactiveObjCBridge。
ReactiveCocoa
现在的 RAC 注意力主要集中在 Swift 和 UI 层上,将原来一个基于 RAC 面向 UI 层的扩展库 Rex合并进了 RAC 。
RAC 3 和 4 的主要精力在围绕 Swift 重新打造一个响应式编程库。因为这部分的核心 API 已经很成熟,所以现在将重心放在为 AppKit 和 UIKit 提供一些更好用的扩展上。
ReactiveSwift
原来 RAC 中只和 Swift 平台相关的核心代码被单独抽取成了一个新框架:ReactiveSwift。
Swift 正在快速成长并且成长为一个跨平台的语言。把只和 Swift 相关的代码抽取出来后,ReactiveSwift 就可以在其他平台上被使用,而不只是局限在 CocoaTouch 和 Cocoa 中。
ReactiveObjC
在 RAC 3 和 4 中,RAC 也包含了 RAC 2 中的 OC 代码。现在这部分代码被移到了 ReactiveObjC。
这样做的原因是因为两个库虽然有着一样的核心编程范式,实际上却是完全独立的两套 API 。实际的使用中,RAC 4 和 RAC 2 是完全不同的两组用户群,并且维护的团队其实也是两组。之前混在一个库里也增加了管理的复杂度。拆分出去后也可以更加自由的维护 ReactiveObjC 。
ReactiveObjCBridge
在把 Swift 和 OC 的库拆分之后问题来了,并不是所有的库都是纯 OC 和 Swift 的。有相当大一部分项目处于 OC 迁移到 Swift 过程中,其中可能使用 Swift 调用了 RAC 2 中基于 OC 写的 API。为了解决这部分用户的问题,所以有了 ReactiveObjCBridge。
在项目里现在到底要引入哪些
如果你只是纯 swift 项目,你继续使用 ReactiveCocoa 。但是 RAC 依赖于 ReactiveSwift ,等于你引入了两个库。
如果你的项目是纯 OC 项目,你需要使用的是 ReactiveObjC 。这个库里面包含原来 RAC 2 的全部代码。
如果你的项目是 swift 和 OC 混编,你需要同时引用 ReactiveCocoa 和 ReactiveObjCBridge 。但是 ReactiveObjCBridge 依赖于 ReactiveObjC ,所以你就等于引入了 4 个库。
API 重新命名????
这部分的给我的感觉就是会呼吸的痛。很多 API 需要重新找一遍,而且命名也变了。
一个方向是参照 RxSwift 采用了reactive 的命名空间。比如:
let appearing = view.reactive.trigger(for: #selector(viewWillAppear(_:))) let producer = object.reactive.values(forKeyPath: #keyPath(key))
API 都放在了 reactive 后。不再是原先的 rac_xx 。
还有一部分与 UI 相关的属性命名也改了,可能是受 rex 的影响。比如:
// 原来是 rac_text viewModel.searchString还增加了生命周期 lifetime 的属性。比如:
signal.take(during: object.reactive.lifetime)当 object 被回收的时候信号也停止获取 value 。
最后
让我们一起笑着活下去????。
欢迎关注我的微博:@没故事的卓同学
相关链接:RAC change log
- 上一篇: “权力游戏的女主角:武则天的传奇人生”
- 下一篇: 优秀作品|饰品拟人插画|插画师Shycocoa
猜你喜欢
- 2024-10-24 四季?转,爱情常在:守护平淡中的不平凡
- 2024-10-24 COCOA水屋前面一点点就是海沟浮潜很不错,偶遇鲨鱼
- 2024-10-24 欣赏夏天的草原有多迷人,享受着惬意时光!
- 2024-10-24 “黄昏醉影:陪你走过每一个告别时刻”
- 2024-10-24 丁丁历险记 摄影师 木各格Cocoa(丁丁历险记演员)
- 2024-10-24 死契(花魁)(死契1提示)
- 2024-10-24 源码推荐(03.08):ReactiveCocoa登录交互效果的实现,可编辑可拖动排序
- 2024-10-24 Cocoa+豪华巧克力包装设计(巧克力包装设计说明模板)
- 2024-10-24 经典白蛇回归!Air Force 1 “Cocoa Snake” 即将复刻登场
- 2024-10-24 BobbiBrown新品唇膏cocoa! !日杂榛果奶茶~
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)