Skip to content

Instantly share code, notes, and snippets.

@stevencurtis
Created June 10, 2020 12:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevencurtis/2fc025cf99e946cfdb5271f0084fc839 to your computer and use it in GitHub Desktop.
Save stevencurtis/2fc025cf99e946cfdb5271f0084fc839 to your computer and use it in GitHub Desktop.
operationdependencies
class FirstPrintOperation: Operation {
let stringToPrint: String
init(stringToPrint: String = "I don't have manners") {
self.stringToPrint = stringToPrint
super.init()
}
override func main() {
guard !isCancelled else { return }
print(stringToPrint)
}
}
class SecondPrintOperation: Operation {
let stringToPrint: String
init(stringToPrint: String = "This isn't \"Hello, World\"") {
self.stringToPrint = stringToPrint
super.init()
}
override func main() {
guard !dependencies.contains(where: { $0.isCancelled }), !isCancelled else {
return
}
print(stringToPrint)
}}
let firstPrintOperation = FirstPrintOperation(stringToPrint: "FirstPrintOperation")
let secondPrintOperation = SecondPrintOperation(stringToPrint: "SecondPrintOperation")
secondPrintOperation.addDependency(firstPrintOperation)
let multipleOperationsQueue = OperationQueue()
multipleOperationsQueue.addOperations([firstPrintOperation, secondPrintOperation], waitUntilFinished: true)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment