Sobes.tech
Junior — Middle

Hogyan lehet törölni egy várakozó feladatot a sorban, mielőtt elindulna?

sobes.tech MI

Válasz az MI-től

iOS-en, egy olyan feladat törléséhez, amely a sorban van, de még nem indult el, meghívhatja a cancel() metódust a feladat objektumán (például Operation vagy URLSessionTask). Ha a feladat még nem kezdődött el, akkor törlésre kerül és nem fog futni.

Példa OperationQueue használatával:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Feladat végrehajtása")
}
operationQueue.addOperation(operation)

// Feladat törlése a futtatás előtt
operation.cancel()

Ha a feladat már fut, a törlés nem feltétlenül állítja meg azonnal, ezért a feladat belsejében ellenőrizni kell az isCancelled zászlót és helyesen befejezni.