异步操作旨在简化在使用NSOperation进行异步任务时经常遇到的问题。
假设你有一个耗时任务,你希望它在后台线程上执行。
异步操作为你提供了两种在异步的NSOperation
中封装任务的方法
AsyncOperation
class ExampleOperation : AsyncOperation {
override func main() {
self.state = .Executing
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
// perform time-consuming task
self.state = .Finished
}
}
}
AsyncBlockOperation
AsyncBlockOperation() { operation in
operation.state = .Executing
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
// perform time-consuming task
operation.state = .Finished
}
}
异步操作包含一个演示应用程序。
只需将"AsyncOperation/Classes/..."
中的文件复制到您的项目中。
或者,您可以使用Carthage(github 'regexident/AsyncOperation'
)或使用CocoaPods(pod 'AsyncOperation'
)将异步操作安装到您的项目中
异步操作完全使用Swift实现。
无。
OS X 10.9+ / iOS 7.0+
Vincent Esche (@regexident)
Sandbox在修改后的BSD-3条款许可下可用,并具有附加的归属要求。有关更多信息,请参阅LICENSE
文件。