AsyncOperation
AsyncOperation aims to ease the pain commonly encountered when having to subclass NSOperation for async tasks.
Example usage
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
:
Using class ExampleOperation : AsyncOperation {
override func main() {
self.state = .Executing
DispatchQueue.global().async {
// perform time-consuming task
self.state = .Finished
}
}
}
AsyncBlockOperation
:
Using AsyncBlockOperation() { operation in
operation.state = .Executing
DispatchQueue.global().async {
// perform time-consuming task
operation.state = .Finished
}
}
Demos
AsyncOperation contains a demo app.
Installation
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'
)
Swift
AsyncOperation is implemented in 100% Swift 3.
Dependencies
None.
Requirements.
OS X 10.9+ / iOS 8.0+
Creator
Vincent Esche (@regexident)
License
AsyncOperation is available under a modified BSD-3 clause license with the additional requirement of attribution. See the LICENSE
file for more info.