Sobes.tech
Junior — Middle

Как може да се отменя задача, която е в опашката, преди да започне?

sobes.tech AI

Отговор от AI

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

Пример с OperationQueue:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Изпълнение на задачата")
}
operationQueue.addOperation(operation)

// Отмяна на задачата преди да започне
operation.cancel()

Ако задачата вече се изпълнява, отменянето може да не я спре незабавно, затова вътре в задачата трябва да проверявате флага isCancelled и да я завършите правилно.