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.