Sobes.tech
Назад к вопросам
Junior — Middle
67

Каким образом можно отменить задачу, находящуюся в очереди, до её запуска?

Компании, где спрашивали
VKVK

Ответ от нейросети

sobes.tech AI

В iOS для отмены задачи, которая находится в очереди, но ещё не запущена, можно вызвать метод cancel() у объекта задачи (например, Operation или URLSessionTask). Если задача ещё не начала выполнение, она будет отменена и не запустится.

Пример с использованием OperationQueue:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Выполнение задачи")
}
operationQueue.addOperation(operation)

// Отмена задачи до её запуска
operation.cancel()

Если задача уже выполняется, отмена может не остановить её мгновенно, поэтому внутри задачи стоит проверять флаг isCancelled и корректно завершать работу.