测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新版本 | 2017年2月 |
SwiftSwift 版本 | 3.0-GM-CANDIDATE |
SPM支持 SPM | ✗ |
由 Jorge Orjuela 维护。
一个受 WWDC 2015 高级 NSOperations 会话启发的 Swift 框架。
Operation
是 Foundation.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 还提供了 TimeoutObserver
和 NetworkObserver
。
条件附加到 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")
}
}