ReactiveCommander 0.0.4

ReactiveCommander 0.0.4

测试测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2015年12月
SPM支持SPM

Pedro Piñera维护。



  • @pepibumur

需求

安装

CocoaPods

您可以使用CocoaPods安装ReactiveCommander,将以下行添加到您的Podfile中:

use_frameworks!
pod "ReactiveCommander/RX" // For RxSwift
pod "ReactiveCommander/RAC" // For ReactiveCocoa

在任何需要使用框架的地方,使用import ReactiveCommander导入它。

Carthage

Carthage也提供了安装的选项

github "SwiftReactive/ReactiveCommander"

根据您想使用的框架(ReactiveCocoaRxSwift),您需要在项目中添加相应的依赖,即添加RACCommanderRXCommander。然后使用这些名称导入它们。

贡献

  • 克隆仓库:git clone https://github.com/swiftreactive/ReactiveCommander
  • 安装Carthage:brew install carthage
  • 更新Carthage依赖:carthage update
  • 打开项目ReactiveCommander.xcodeproj

组件

ReactiveCommander使用NSOperationQueue和响应式方法实现编程命令模式。这种模式的思想是将操作封装在初始化时带有执行动作所需参数的command中。这些命令可以在队列中安排,以便管理这些命令的线程、并发和执行。

Command

  • Command:一个默认的通用命令,其中T是返回类型。此命令在使用之前必须通过实现public func action() throws -> T方法进行重写。

CommandQueue

  • 可以将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>

    当开始启动SignalProducerObservable订阅者时,将命令添加到队列中以供执行。

  • CommandQueue提供单例实例,可以通过CommandQueue.backgroundQueue访问。如果您想实现自己的队列,您可以使用自己的NSOperationQueue配置来创建该类的子类。
  • ReactiveCommander提供与CommandCommandQueue一起使用的自定义操作符
    • let disposable = queue <~ command - 将命令入队并返回一个可丢弃的对象。

备注

  • Command 的操作必须是同步的。异步操作由队列处理。
  • Command 必须代表独立的操作,而且应避免操作之间的复杂关系。

许可证

ReactiveCommander 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。