RXCommander 0.0.8

RXCommander 0.0.8

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2016年1月
SPM支持 SPM

Pedro Piñera 维护。



  • 作者:
  • @pepibumur

ReactiveCommander

image

需求

安装

CocoaPods

你可以使用 CocoaPods 安装 ReactiveCommander,在 Podfile 中添加以下行

use_frameworks!
pod "RXCommander" // For RxSwift
pod "RACCommander" // For ReactiveCocoa

无论你想要在哪里使用该框架,请使用 import ReactiveCommander 导入

Carthage

它也可以使用 Carthage 来安装

github "SwiftReactive/ReactiveCommander"

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

支持的最低版本

  • tvOS - 9.0
  • iOS - 8.0
  • OSX - 10.10
  • watchOS - 2.1

贡献

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

组件

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

命令

  • 命令:T 是返回类型的默认泛型命令。在用于之前,必须实现 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 配置来实现自己的队列,可以直接继承这个类。
  • ReactiveCommander 为 CommandCommandQueue 提供了一个自定义操作符。
    • let disposable = queue <~ command - 将命令入队并返回可取消订阅的对象。

说明

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

许可

ReactiveCommander 采用 MIT 许可。更多信息请参阅 LICENSE 文件。