Junior — Middle
Jak można anulować zadanie znajdujące się w kolejce przed jego rozpoczęciem?
sobes.tech AI
Odpowiedź od AI
Na iOS, aby anulować zadanie znajdujące się w kolejce, ale jeszcze nie uruchomione, można wywołać metodę cancel() na obiekcie zadania (np. Operation lub URLSessionTask). Jeśli zadanie jeszcze się nie rozpoczęło, zostanie anulowane i nie zostanie uruchomione.
Przykład z użyciem OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Wykonywanie zadania")
}
operationQueue.addOperation(operation)
// Anuluj zadanie przed jego uruchomieniem
operation.cancel()
Jeśli zadanie jest już w trakcie wykonywania, anulowanie może nie zatrzymać go natychmiast, dlatego wewnątrz zadania należy sprawdzać flagę isCancelled i poprawnie je zakończyć.