OperationKit 2.1.2

OperationKit 2.1.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新版本2017年2月
SwiftSwift 版本3.0-GM-CANDIDATE
SPM支持 SPM

Jorge Orjuela 维护。



  • Jorge Mario Orjuela Gutierrez

一个受 WWDC 2015 高级 NSOperations 会话启发的 Swift 框架。

要求

  • iOS 8.0+
  • Xcode 8.1+
  • Swift 3.0+

用法

OperationFoundation.Operation 的子类。它是一个抽象类,应该被子类化。

import OperationKit

class FooOperation: Operation {
    override func execute() {
        print("running")
        finish()
    }
}

let operationQueue = OperationQueue()
let fooOperation = FooOperation()
operationQueue.addOperation(fooOperation)

观察者

观察者附加到 Operation 上。当操作事件发生时,它们会收到回调。

operation.addObserver(BlockObserver { operation, _ in
    print("finished")                     
})

OperationKit 还提供了 TimeoutObserverNetworkObserver

条件

条件附加到 Operation 上。在操作准备好执行之前,它将异步 评估 所有的条件。如果任何条件失败,操作将错误结束而不是执行。例如

let urlRequestOperation = URLRequestOperation(request: request)
urlRequestOperation.addCondition(ReachabilityCondition(host: request.url!))

发起请求

import OperationKit

let operationQueue = OperationKit.OperationQueue()
let dataRequestOperation = DataRequestOperation(request: request)
operationQueue.addOperation(operationQueue)

响应处理

在 OpertationKit 中处理由 DataRequest 制作的 Response 很简单。

dataRequestOperation.responseJSON { result in
    switch result {
          case let .success(responseJSON):
                print(responseJSON)

           case let .failure(_error):
               print("error")
    }
}