CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

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.