Sobes.tech
Junior — Middle

Jak lze zrušit úlohu, která je ve frontě, před jejím spuštěním?

sobes.tech AI

Odpověď od AI

Na iOS, pro zrušení úkolu, který je ve frontě, ale ještě nebyl spuštěn, můžete zavolat metodu cancel() na objektu úkolu (například Operation nebo URLSessionTask). Pokud úkol ještě nezačal, bude zrušen a nespustí se.

Příklad s OperationQueue:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Provádění úkolu")
}
operationQueue.addOperation(operation)

// Zrušit úkol před jeho spuštěním
operation.cancel()

Pokud je úkol již spuštěn, zrušení ho možná okamžitě nezastaví, proto je důležité uvnitř úkolu kontrolovat příznak isCancelled a správně ho ukončit.