CocoaPods
您可以使用CocoaPods安装ReactiveCommander,将以下行添加到您的Podfile中:
use_frameworks!
pod "ReactiveCommander/RX" // For RxSwift
pod "ReactiveCommander/RAC" // For ReactiveCocoa
在任何需要使用框架的地方,使用import ReactiveCommander
导入它。
Carthage
Carthage也提供了安装的选项
github "SwiftReactive/ReactiveCommander"
根据您想使用的框架(ReactiveCocoa
或RxSwift
),您需要在项目中添加相应的依赖,即添加RACCommander
或RXCommander
。然后使用这些名称导入它们。
git clone https://github.com/swiftreactive/ReactiveCommander
brew install carthage
carthage update
ReactiveCommander.xcodeproj
ReactiveCommander使用NSOperationQueue和响应式方法实现编程命令模式。这种模式的思想是将操作封装在初始化时带有执行动作所需参数的command
中。这些命令可以在队列中安排,以便管理这些命令的线程、并发和执行。
public func action() throws -> T
方法进行重写。可以将Commands
添加到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 文件。