RxTests 3.0.0-beta.2

RxTests 3.0.0-beta.2

测试测试通过
语言语言 SwiftSwift
许可证
发布最后发布2018年3月
SPM支持 SPM

Krunoslav ZaherShai Mishali 维护。



RxTests 3.0.0-beta.2

  • 作者:
  • Krunoslav Zaher

Miss Electric Eel 2016 RxSwift:Swift 中的 ReactiveX

Travis CI platforms pod Carthage compatible

关于 Rx

⚠️此说明描述了需要 Swift 3.0 的 RxSwift 3.0 版本。

⚠️如果您正在寻找与 Swift 2.3 兼容的版本,请查看 RxSwift > 2.0 版本和 swift-2.3 分支。

Rx 是通过 Observable< Element > 接口表达的计算泛型抽象。

这是 Rx 的 Swift 版本。

它试图尽可能多地移植原始版本中的概念,但一些概念为了更好地与 iOS/OSX 环境集成而被适配。

跨平台文档可以在 ReactiveX.io 上找到。

与原始 Rx 一样,其目的是使异步操作和事件/数据流易于组合。

KVO 观察、异步操作和流程都被统一在 序列抽象 下。这也是为什么 Rx 如此简单、优雅、强大的原因。

我来到这里是因为我想...

...理解
...安装
  • 将RxSwift/RxCocoa集成到我的应用程序中。 安装指南
...绕过
...交互
... 比较
... 查找兼容
... 看看更广泛的视角
  • 这在Android中存在吗? RxJava
  • 这一切都将何去何从,未来是什么,关于响应式架构,如何以这种方式设计整个应用程序? Cycle.js - 这是JavaScript,但 RxJS 是Rx的JavaScript版本。

用法

以下是一个示例 动作
定义GitHub仓库的搜索...
let searchResults = searchBar.rx.text
    .throttle(0.3, scheduler: MainScheduler.instance)
    .distinctUntilChanged()
    .flatMapLatest { query -> Observable<[Repository]> in
        if query.isEmpty {
            return .just([])
        }
    return searchGitHub(query)
        .catchErrorJustReturn([])
}
.observeOn(MainScheduler.instance)</pre></div></td>
...然后将结果绑定到你的表视图
searchResults
    .bindTo(tableView.rx.items(cellIdentifier: "Cell")) {
        (index, repository: Repository, cell) in
        cell.textLabel?.text = repository.name
        cell.detailTextLabel?.text = repository.url
    }
    .addDisposableTo(disposeBag)

要求

  • Xcode 8.0
  • Swift 3.0

安装

Rx不包含任何外部依赖。

这些是目前支持的选项

手册

打开 Rx.xcworkspace,选择 RxExample 并运行。此方法将构建一切并运行示例应用程序

CocoaPods

# Podfile
use_frameworks!

target 'YOUR_TARGET_NAME' do
    pod 'RxSwift',    '~> 3.0.0-beta.2'
    pod 'RxCocoa',    '~> 3.0.0-beta.2'
end

# RxTests and RxBlocking make the most sense in the context of unit/integration tests
target 'YOUR_TESTING_TARGET' do
    pod 'RxBlocking', '~> 3.0.0-beta.2'
    pod 'RxTests',    '~> 3.0.0-beta.2'
end

替换 YOUR_TARGET_NAME,然后在 Podfile 目录中,输入

⚠️如果想在 Xcode 8.0 测试版和 Swift 3.0 下使用 CocoaPods,可能需要将以下行添加到你的 podfile 中⚠️

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['SWIFT_VERSION'] = '3.0'
      config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.10'
    end
  end
end
$ pod install

Carthage

将其添加到 Cartfile

github "ReactiveX/RxSwift" "3.0.0-beta.2"
$ carthage update

手动使用 git 子模块

  • 将 RxSwift 作为子模块添加
$ git submodule add [email protected]:ReactiveX/RxSwift.git
  • Rx.xcodeproj 拖放到项目导航器
  • 转到 项目 > 目标 > 构建阶段 > 链接二进制库,点击 + 并选择 RxSwift-[平台]RxCocoa-[平台] 目标

参考