Junior — Middle
Cum se poate anula o sarcină aflată în coadă înainte de a fi începută?
sobes.tech AI
Răspuns de la AI
În iOS, pentru a anula o sarcină care se află în coadă, dar încă nu a fost pornită, poți apela metoda cancel() pe obiectul sarcinii (de exemplu, Operation sau URLSessionTask). Dacă sarcina nu a început încă, va fi anulată și nu va fi executată.
Exemplu cu OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Executarea sarcinii")
}
operationQueue.addOperation(operation)
// Anulează sarcina înainte de a începe
operation.cancel()
Dacă sarcina este deja în curs de execuție, anularea poate să nu o oprească imediat, așa că în interiorul sarcinii trebuie verificat flag-ul isCancelled și încheiată corect.