Kommander 1.1

Kommander 1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2018年9月
SPM支持 SPM

alexruperez维护。



  • Alex Rupérez, Juan Trías 和 Roberto Estrada

Kommander

Twitter Version License Platform Swift Carthage compatible Swift Package Manager Compatible Build Status Documentation Downloads Help Contribute to Open Source

Kommander 是一个 Swift 库,用于管理不同线程中的任务执行。通过定义一个简单但功能强大的概念,指挥模式

灵感来源于 Java 库 Kommander,由 Wokdsem 提供。

Kommander

🌟特性

  • 创建命令或多个命令
  • 执行命令或多个命令
  • 取消命令或多个命令
  • 重试命令或多个命令
  • 设置命令成功的闭包
  • 设置命令错误的闭包
  • 指定错误类型后设置命令错误闭包
  • 主线程派发器
  • 当前线程派发器
  • 自定义 OperationQueue 派发器
  • 执行单个或多个 Operation
  • 执行顺序或并发闭包
  • 执行 DispatchWorkItem
  • 命令状态
  • iOS 兼容
  • watchOS 兼容
  • tvOS 兼容
  • macOS 兼容
  • Swift 4 版本
  • Swift 3 版本
  • Swift 2 版本
  • Objective-C 版本

📲安装

Kommander 通过CocoaPods可用。要安装它,只需将以下行添加到 Podfile

pod 'Kommander'

为了与 Swift 3 兼容使用

pod 'Kommander', '~> 0.7'

为了与 Swift 2 兼容使用

pod 'Kommander', :git => 'https://github.com/intelygenz/Kommander-iOS.git', :tag => '0.3.0-swift2'

为了与 Objective-C 兼容使用

pod 'Kommander', :git => 'https://github.com/intelygenz/Kommander-iOS.git', :tag => '0.2.3-objc'

或者您可以使用Carthage来安装它

github "intelygenz/Kommander-iOS"

或者使用 Swift 包管理器 进行安装

dependencies: [
    .package(url: "https://github.com/intelygenz/Kommander-iOS.git")
]

🐒使用方法

制作、执行、取消和重试 Kommands

Kommander().make {
    // Your code here
}.execute()
Kommander().make {
    // Your code here
}.execute(after: .seconds(2))
Kommander().make {
    return "Your string"
}.success { yourString in
    print(yourString)
}.execute()
Kommander().make {
    throw CocoaError(.featureUnsupported)
}.error { error in
    print(String(describing: error!))
}.execute()
指定错误类型
Kommander().make {
    throw MyError.error
}.error(MyError.self) { error in
    // error is MyError type.
}.execute()
取消后重试
let kommand = Kommander().make { () -> Any? in
    // Your code here
}.success { result in
    // Your success handling here
}.error { error in
    // Your error handling here
}.execute()

kommand.cancel()

kommand.retry()
失败后重试
let kommand = Kommander().make { () -> Any? in
    // Your code here
}.error { error in
    // Your error handling here
}.retry { error, executionCount in
    return executionCount < 2
}.execute()

创建 Kommanders

Kommander(deliverer: Dispatcher = .current, executor: Dispatcher = .default)

Kommander(deliverer: Dispatcher = .current, name: String, qos: QualityOfService = .default, maxConcurrentOperations: Int = .default)
快捷键
Kommander.main

Kommander.current

Kommander.default

Kommander.userInteractive

Kommander.userInitiated

Kommander.utility

Kommander.background

创建调度器

CurrentDispatcher()

MainDispatcher()

Dispatcher(name: String, qos: QualityOfService = .default, maxConcurrentOperations: Int = .default)
快捷键
Dispatcher.main

Dispatcher.current

Dispatcher.default

Dispatcher.userInteractive

Dispatcher.userInitiated

Dispatcher.utility

Dispatcher.background

❤️等。

  • 欢迎贡献。
  • 归功于作者是受欢迎的(让我们传播这个信息!),但不是强制性的。

👨‍💻作者

alexruperez, [email 保护电子邮件地址]

juantrias, [email 保护电子邮件地址]

RobertoEstrada, [email 保护电子邮件地址]

👮‍♂️许可证

Kommander 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。