Junior — Middle
Kuidas saab tühistada järjekorras oleva ülesande enne selle käivitamist?
sobes.tech AI
Vastus AI-lt
iOS-is, et tehtise järjekorras olevate, kuid veel mitte alustatavate ülesannete tühistamiseks saate kutsuda meetodi cancel() ülesande objektil (näiteks Operation või URLSessionTask). Kui ülesanne pole veel alanud, tühistatakse see ja seda ei käivitatakse.
Näide kasutades OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Ülesande täitmine")
}
operationQueue.addOperation(operation)
// Tühista ülesanne enne selle algust
operation.cancel()
Kui ülesanne juba töötab, võib tühistamine seda mitte koheselt peatada, seetõttu on oluline ülesande sees kontrollida isCancelled lipu ja lõpetada see õigesti.