swift-ReactiveObjCBridge Swift与Reactive编程桥接工具
Swift 项目里想用老牌的ReactiveObjC?又不想放弃ReactiveSwift的新语法?swift-ReactiveObjCBridge就挺适合你。它是个桥接工具,专门让SignalProducer、RACSignal这些信号在Swift和Objective-C之间来回跑。嗯,混编项目用它,真的是省心不少。
混编项目里最烦的,就是明明两个库都挺好用,就是不说话。ReactiveObjCBridge就像翻译一样,帮ReactiveSwift跟ReactiveObjC打通。你写了个SignalProducer,转成RACSignal在OC里用,没毛病;反过来也行,桥得稳。
比如老项目里还有一堆RACCommand和RACTuple,你又想在新代码里用Signal、Action这些ReactiveSwift的类型,这时候桥接就派上用场了。响应链还能统一逻辑,不然一个项目里两个响应模型,光是调试都让人抓狂。
哦,桥接虽然香,但也有坑。类型转换要注意,Swift对类型挺挑的,随便来个Any就报错。命名冲突也会遇到,是@objc暴露的接口,最好起名前先搜一下。
内存管理这块也要小心,毕竟ARC规则不太一样。Swift里闭包捕获太猛,Objective-C那边容易提前释放,调不通数据流都不知道咋回事。还有错误,两边模型不一样,建议统一转成你熟的一种来用。
性能上,桥用得太频繁会有点吃资源,尤其是在高频信号流里,一来一回的转换有点浪费。所以建议架构上想好,哪里桥、哪里不桥,有的放矢。
,swift-ReactiveObjCBridge对混编项目真的是福音。如果你还在苦恼ReactiveSwift和ReactiveObjC怎么配合,不妨试试它,熟悉之后切换语言像切输入法一样自然。
文件大小:34.96KB
评论区