ReactiveSwift 提供了可组合、声明式和灵活的基元,这些基元围绕着随时间变化的值的流这个宏伟概念而构建。
这些基元可以用来统一表示常见的 Cocoa 和通用编程模式,这些模式本质上是一种观察行为,例如委托模式、回调闭包、通知、控件动作、响应者链事件、futures/promises 和 键值观察 (KVO)。
因为所有这些不同的机制都可以用相同的方式表示,所以很容易以声明方式将它们组合在一起,减少了用于弥合差距的意大利面条式代码和状态。
ReactiveSwift 基元的语义和示例用例概述,包括 Signal
、SignalProducer
、Property
和 Action
。
用于组合和转换值流的操作符概述。
ReactiveCocoa 基于 ReactiveSwift 构建,使用响应式绑定和扩展来扩展 Cocoa 平台框架。
ReactiveSwift 与 RxSwift 有什么关系?
ReactiveSwift 与 RxSwift 不同的地方概述,以便更符合 Swift 习惯用法。
交互式表单 UI
ReactiveSwift 包含一个 UI 示例 playground,演示了
Action
构建交互式表单 UI,并实际查看效果。Cocoa 和 Cocoa Touch 框架的绑定和响应式扩展作为 ReactiveCocoa 单独提供。
ReactiveSwift 基元的约定、ReactiveSwift 的最佳实践以及实现自定义操作符的指南。
ReactiveSwift 支持 macOS 10.9+、iOS 8.0+、watchOS 2.0+、tvOS 9.0+ 和 Linux。
如果您使用 Carthage 来管理您的依赖项,只需将 ReactiveSwift 添加到您的 Cartfile
github "ReactiveCocoa/ReactiveSwift" ~> 5.0
如果您使用 Carthage 来构建您的依赖项,请确保已将 ReactiveSwift.framework
添加到您目标的“Linked Frameworks and Libraries”部分,并将它们包含在您的 Carthage 框架复制构建阶段中。
如果您使用 CocoaPods 来管理您的依赖项,只需将 ReactiveSwift 添加到您的 Podfile
pod 'ReactiveSwift', '~> 5.0'
如果您使用 Swift 包管理器,只需将 ReactiveSwift 添加为 Package.swift
中包的依赖项
.package(url: "https://github.com/ReactiveCocoa/ReactiveSwift.git", from: "5.0.0")
git submodule update --init --recursive
。ReactiveSwift.xcodeproj
拖放到应用程序的 Xcode 项目或工作区中。ReactiveSwift.framework
添加到“Embedded Binaries”部分。EMBEDDED_CONTENT_CONTAINS_SWIFT
构建设置设置为“Yes”。我们还提供了一个很棒的 Playground,因此您可以习惯 ReactiveCocoa 的操作符。 为了开始使用它
git submodule update --init --recursive
或者,如果您安装了 Carthagecarthage checkout
ReactiveSwift.xcworkspace
ReactiveSwift-macOS
方案ReactiveSwift.playground
View > Show Debug Area
如果您需要任何帮助,请访问我们的 GitHub issues 或 Stack Overflow。 如果您无法从存档中找到任何解决方案,请随时提交问题。
当 Swift 推出弹性支持时,预计 ReactiveSwift 将声明库 ABI 稳定性。 在此之前,ReactiveSwift 将逐步采用有助于朝着目标前进的新语言功能。 ETA 是 Swift 5。