There are 3 Operations in my OperationQueue and i'm not able to cancel specific operation from them.
I referred this example but i can't understand it NSOperationQueue cancel specific operations
This is my code
class myOperation1 : Operation {
override func main() {
print("op1 () working....")
for i in 1...10 {
print("")
}
}
}
class myOperation2 : Operation {
override func main() {
print("op2 () working....")
for i in 1...10 {
print("")
}
}
}
class myOperation3 : Operation {
override func main() {
print("op3 () working....")
for i in 1...10 {
print("")
}
}
}
let op1 = myOperation1()
let op2 = myOperation2()
let op3 = myOperation3()
op1.completionBlock = {
print("op1 () completed")
}
op2.completionBlock = {
print("op2 () completed")
}
op3.completionBlock = {
print("op3 () completed")
}
let opsQue = OperationQueue()
opsQue.addOperations([op1, op2, op3], waitUntilFinished: false)
DispatchQueue.global().asyncAfter(deadline: .now()) {
opsQue.cancelAllOperations()
}
Inshort i want to cancel second operation from operationQueue.
Please guide me.
Thank you
you can call op2.cancel() to cancel the operation, but you need to take additional steps to really stop your operation from running as cancel() only set the isCanceled property to true.
Please check the developer document. https://developer.apple.com/documentation/foundation/operation/1408418-iscancelled