CocoaPods
您可以通过将以下行添加到您的 Podfile
中来安装 ReactiveCommander:
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
方法。可以在 CommandQueue
中排队 Commands
,它是 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文件。