Назад к вопросам
VK
Junior — Middle
67
Каким образом можно отменить задачу, находящуюся в очереди, до её запуска?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В iOS для отмены задачи, которая находится в очереди, но ещё не запущена, можно вызвать метод cancel() у объекта задачи (например, Operation или URLSessionTask). Если задача ещё не начала выполнение, она будет отменена и не запустится.
Пример с использованием OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Выполнение задачи")
}
operationQueue.addOperation(operation)
// Отмена задачи до её запуска
operation.cancel()
Если задача уже выполняется, отмена может не остановить её мгновенно, поэтому внутри задачи стоит проверять флаг isCancelled и корректно завершать работу.