Skip to content
This repository has been archived by the owner on May 23, 2019. It is now read-only.
/ AsyncOperation Public archive

A hassle-free implementation of asynchronous NSOperations/NSBlockOperations.

License

Notifications You must be signed in to change notification settings

regexident/AsyncOperation

Repository files navigation

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

    DispatchQueue.global().async {
      // perform time-consuming task
      self.state = .Finished
    }
  }
}

Using AsyncBlockOperation:

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.

About

A hassle-free implementation of asynchronous NSOperations/NSBlockOperations.

Resources

License

Stars

Watchers

Forks

Packages

No packages published