Junior — Middle
Kaip galima atšaukti eilėje esančią užduotį prieš jos pradžią?
sobes.tech AI
Atsakymas iš AI
iOS, norint atšaukti eilėje esantį, bet dar nepradėtą užduotį, galite iškviesti cancel() metodą užduoties objekte (pavyzdžiui, Operation arba URLSessionTask). Jei užduotis dar nepradėta, ji bus atšaukta ir nebus vykdoma.
Pavyzdys naudojant OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Užduoties vykdymas")
}
operationQueue.addOperation(operation)
// Atšaukite užduotį prieš ją pradėdami
operation.cancel()
Jei užduotis jau vyksta, atšaukimas gali jos nedelsiant sustabdyti, todėl užduoties viduje reikia patikrinti isCancelled žymeklį ir tinkamai užbaigti.