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