
NSObject-Rx 安装全攻略CocoaPods、Carthage 与 SwiftPM 三种方式终极对比【免费下载链接】NSObject-RxHandy RxSwift extensions on NSObject, including rx.disposeBag.项目地址: https://gitcode.com/gh_mirrors/ns/NSObject-Rx对于正在使用 RxSwift 的 iOS 开发者来说NSObject-Rx 安装几乎是每新建一个响应式项目都会遇到的环节。NSObject-Rx 是一个轻量级的 RxSwift 扩展库它为所有 NSObject 子类自动提供rx.disposeBag属性让你告别在每个类里手动声明let disposeBag DisposeBag()的重复劳动。本文将从零开始用最通俗的语言带你一次性掌握NSObject-Rx 的三种主流安装方式——CocoaPods、Carthage 与 SwiftPM并给出直观的终极对比帮你快速选出最适合自己项目的方案。上图正是 NSObject-Rx 诞生的原因GitHub 上搜一下let disposeBag DisposeBag()能搜出 489 条几乎一模一样的重复声明 。这个库的核心实现其实非常简洁全部源码只有两个文件NSObjectRx.swift 负责提供rx.disposeBag属性HasDisposeBag.swift 则是一个协议让不继承 NSObject 的类型也能拥有自己的disposeBag。安装前必看环境与版本要求在开始 NSObject-Rx 安装之前先确认你的开发环境满足以下条件项目最低要求iOS / tvOS9.0macOS10.10watchOS3.0Swift5.2RxSwift~ 6.2最新版本为5.2.2可查看 NSObjectRx.podspec 确认版本号。下面进入正题逐一演示三种安装方式。方式一CocoaPods 安装 NSObject-Rx 的最快方法CocoaPods 是 iOS 生态最老牌、资料最多的依赖管理工具也是 NSObject-Rx 官方推荐的主要开发方式项目自带的 Demo/Podfile 就是这么配的。一键安装步骤确保已安装 CocoaPodssudo gem install cocoapods在项目根目录的Podfile中添加一行pod NSObjectRx执行pod install之后必须用生成的.xcworkspace打开项目在需要使用的地方import NSObject_Rx即可小提示 如果你的项目要指定版本可以写成pod NSObjectRx, ~ 5.2。遇到 No such module 报错时先检查是否使用了use_frameworks!并清理一下 DerivedData。方式二Carthage 集成 NSObject-Rx 的完整配置流程Carthage 的特点是「去中心化」它只负责把依赖编译成 framework集成工作由你自己在 Xcode 中完成项目结构更干净也更容易排查问题。最快配置方法安装 Carthagebrew install carthage在项目根目录创建Cartfile写入github RxSwiftCommunity/NSObject-Rx ~ 5.2.2运行carthage update --platform ios只针对 iOS 平台速度更快把编译好的RxSwift.framework和NSObject_Rx.framework拖入项目的 Frameworks 目录无需勾选 Copy items if needed添加 Run Script 构建阶段填入/usr/local/bin/carthage copy-frameworks并在 Input Files 中列出两个 framework 路径同样通过import NSObject_Rx使用项目自身的 Cartfile 就是现成参考依赖声明格式可以直接照抄。方式三SwiftPM 集成 NSObject-Rx 的原生方案Swift Package Manager 从 Xcode 11 起就是苹果官方力推的依赖管理工具无需任何额外安装是目前上手成本最低的方案。最简集成步骤在 Xcode 菜单栏选择File Add Package Dependencies...输入仓库地址https://gitcode.com/gh_mirrors/ns/NSObject-Rx等待解析选择版本规则推荐Up to Next Major Version点击 Add Package 完成若使用命令行或跨平台工程也可以直接在 Package.swift 中声明依赖.package(url: https://gitcode.com/gh_mirrors/ns/NSObject-Rx, from: 5.2.2)小提示 SwiftPM 方案中HasDisposeBag协议同样可用该问题在 5.1.1 版本已修复非 NSObject 类型也能享受自动销毁的便利。三种安装方式终极对比一张表看懂差异对比维度CocoaPodsCarthageSwiftPM上手难度⭐⭐⭐ 中等⭐⭐⭐⭐ 稍难⭐ 最简单安装依赖需装 gem需装 Homebrew无需安装集成方式自动生成 workspace手动链接 frameworkXcode 原生支持适合人群老项目、团队统一规范追求项目结构干净新项目、个人开发者排查难度报错时需清理缓存需检查构建脚本问题最少一句话结论新项目直接用 SwiftPM省心省力维护多年的老项目跟着团队现有习惯走CocoaPods 或 Carthage 也完全够用 。安装完成后的第一个示例快速上手无论用哪种方式安装使用体验完全一致。看一个最简单的小例子import NSObject_Rx import RxSwift class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() Observable.just(Hello NSObject-Rx) .subscribe(onNext: { print($0) }) .disposed(by: rx.disposeBag) // 无需手动声明 disposeBag } }rx.disposeBag的行为与普通属性完全一致当对象被释放deinit时DisposeBag 会自动清空并取消所有订阅有效避免内存泄漏。它的底层是通过 Objective-C 关联对象实现的读写都做了线程安全处理具体细节可以参考 NSObjectRx.swift 源码。常见问题 FAQ Q1安装后提示找不到模块怎么办A先确认是否在正确的 target 中添加了依赖CocoaPods 用户检查use_frameworks!Carthage 用户检查 Run Script 阶段是否配置正确。Q2我的类不继承 NSObject还能用吗A可以让你的类遵循HasDisposeBag协议即可具体见 HasDisposeBag.swift 的定义协议会自动提供一个默认的disposeBag。Q3三种方式可以混用吗A不建议混用同一个依赖重复集成会导致符号冲突。选择一个方案一用到底最稳妥。总结NSObject-Rx 安装本身并不复杂关键在于理解三种工具各自的适用场景。本文从环境要求、逐步骤安装、对比表格到常见问题已经帮你把整个流程梳理得明明白白。还等什么选一种方式立刻把rx.disposeBag用起来让你的 RxSwift 代码更加简洁优雅吧【免费下载链接】NSObject-RxHandy RxSwift extensions on NSObject, including rx.disposeBag.项目地址: https://gitcode.com/gh_mirrors/ns/NSObject-Rx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考