CocoaPods
你可以使用 CocoaPods 安装 ReactiveCommander,在 Podfile
中添加以下行
use_frameworks!
pod "RXCommander" // For RxSwift
pod "RACCommander" // For ReactiveCocoa
无论你想要在哪里使用该框架,请使用 import ReactiveCommander
导入
Carthage
它也可以使用 Carthage 来安装
github "SwiftReactive/ReactiveCommander"
根据你想要使用的框架(ReactiveCocoa
或 RxSwift
),你需要在项目中添加相应的框架,分别是 RACCommander
或 RXCommander
。然后使用这些名称导入它们。
9.0
8.0
10.10
2.1
git clone https://github.com/swiftreactive/ReactiveCommander
brew install carthage
carthage update
ReactiveCommander.xcodeproj
ReactiveCommander 通过使用 NSOperationQueue 和响应式方法实现了 编程命令模式。该模式的思想是将操作封装在初始化时携带执行所需参数的 command
中。这些命令可以在队列中安排,队列将管理线程、并发和命令的执行。
public func action() throws -> T
方法。Command
可以在 CommandQueue
中入队,它是 NSOperationQueue
的子类,具有新的方法
// ReactiveCocoa
func addCommand<T, E: ErrorType>(cmd: Command<T, E>) -> SignalProducer<T, E>
// RxSwift
public func addCommand<T>(cmd: Command<T>) -> Observable<T>
当 SignalProducer
开始或 Observable
接收到订阅者时,命令将添加到队列中以便执行。
CommandQueue
提供一个单例实例,可以通过 CommandQueue.backgroundQueue
访问。如果你想使用自定义的 NSOperationQueue
配置来实现自己的队列,可以直接继承这个类。Command
和 CommandQueue
提供了一个自定义操作符。let disposable = queue <~ command
- 将命令入队并返回可取消订阅的对象。Command
的操作必须是同步的。异步操作由队列处理。Command
必须代表独立的操作,应避免它们之间的复杂关系。ReactiveCommander 采用 MIT 许可。更多信息请参阅 LICENSE 文件。