AsyncOperation 1.1.0

AsyncOperation 1.1.0

TestsTested
LangLanguage SwiftSwift
License BSD
ReleasedLast Release Mar 2018
SwiftSwift Version 4.0
SPMSupports SPM

Maintained by Vincent Esche.



  • By
  • Vincent Esche

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:

Using 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
        }
    }
}

Using 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
    }
}

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.

Dependencies

None.

Requirements.

OS X 10.9+ / iOS 7.0+

Creator

Vincent Esche (@regexident)

License

Sandbox is available under a modified BSD-3 clause license with the additional requirement of attribution. See the LICENSE file for more info.