★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(let_us_code) ➤博主域名:https://www.zengqiang.org ➤GitHub地址:https://github.com/strengthen/LeetCode ➤原文地址:https://www.cnblogs.com/strengthen/p/13563328.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。 ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创! ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
热烈欢迎,请直接点击!!!
进入博主App Store主页,下载使用各个作品!!!
注:博主将坚持每月上线一个新app!!!
ReactiveX(简写: Rx) 是一个可以帮助我们简化异步编程的框架。
RxSwift 是 Rx 的 Swift 版本。
它尝试将原有的一些概念移植到 iOS/macOS 平台。
你可以在这里找到跨平台文档 ReactiveX.io。
KVO,异步操作 和 流 全部被统一成抽象序列。这就是为什么 Rx 会如此简单,优雅和强大。
操作
下载文档电子书
文档更新日志
19年5月21日(RxSwift 5)
示例
Github 搜索...
定义搜索结果 ...
let searchResults = searchBar.rx.text.orEmpty
.throttle(0.3, scheduler: MainScheduler.instance)
.distinctUntilChanged()
.flatMapLatest { query -> Observable<[Repository]> in
if query.isEmpty {
return .just([])
}
return searchGitHub(query)
.catchErrorJustReturn([])
}
.observeOn(MainScheduler.instance)
... 然后将结果绑定到 tableview 上
searchResults
.bind(to: tableView.rx.items(cellIdentifier: "Cell")) {
(index, repository: Repository, cell) in
cell.textLabel?.text = repository.name
cell.detailTextLabel?.text = repository.url
}
.disposed(by: disposeBag)
必备条件
对于 Xcode 10.1 以下版本,请使用 RxSwift 4.5。
安装
安装 RxSwift 不需要任何第三方依赖。
以下是当前支持的安装方法:
手动
打开 Rx.xcworkspace, 选中 RxExample 并且点击运行。 此方法将构建所有内容并运行示例应用程序。
CocoaPods
pod --version : 1.3.1 已通过测试
替换 YOUR_TARGET_NAME 然后在 Podfile 目录下, 终端输入:
$ pod install
Carthage
官方支持 0.33 及以上版本。
添加到 Cartfile
github "ReactiveX/RxSwift" ~> 5.0
$ carthage update
Carthage 作为静态库。
如果您希望使用 Carthage 将 RxSwift 构建为静态库,在使用 Carthage 构建之前,您可以使用以下脚本手动修改框架类型:
carthage update RxSwift --platform iOS --no-build
sed -i -e 's/MACH_O_TYPE = mh_dylib/MACH_O_TYPE = staticlib/g' Carthage/Checkouts/RxSwift/Rx.xcodeproj/project.pbxproj
carthage build RxAlamofire --platform iOS
Swift Package Manager
创建Package.swift 文件。
$ swift build
如果构建或测试一个模块对 RxTest 存在依赖, 设置 TEST=1 .
$ TEST=1 swift test
使用 git submodules 手动集成
$ git submodule add [email protected]:ReactiveX/RxSwift.git
- 拖拽
Rx.xcodeproj 到项目中
- 前往
Project > Targets > Build Phases > Link Binary With Libraries , 点击 + 并且选中 RxSwift-[Platform] 和 RxCocoa-[Platform]
|
请发表评论