TestsTested | ✗ |
LangLanguage | SwiftSwift |
License | BSD |
ReleasedLast Release | Mar 2018 |
SwiftSwift Version | 4.0 |
SPMSupports SPM | ✗ |
Maintained by Vincent Esche.
AsyncOperation aims to ease the pain commonly encountered when having to subclass NSOperation for async tasks.
Let’s assume you have a time-consuming task that you’d rather perform on a background-thread.
AsyncOperation provides you with two options for wrapping said task in an asynchronous 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 contains a demo app.
Just copy the files in "AsyncOperation/Classes/..."
into your project.
Alternatively you can install AsyncOperation into your project with Carthage (github 'regexident/AsyncOperation'
) or with CocoaPods (pod 'AsyncOperation'
)
AsyncOperation is implemented in 100% Swift.
None.
OS X 10.9+ / iOS 7.0+
Vincent Esche (@regexident)
Sandbox is available under a modified BSD-3 clause license with the additional requirement of attribution. See the LICENSE
file for more info.