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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

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

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

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

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее