Junior — Middle
Ako možno zrušiť úlohu, ktorá je v poradí, pred jej spustením?
sobes.tech AI
Odpoveď od AI
Na iOS, za preklic naloge, ki so v vrsti, vendar še niso zagnani, lahko pokličete metodo cancel() na objektu naloge (npr., Operation ali URLSessionTask). Če naloga še ni začela, bo preklicana in ne bo zagnana.
Primer z uporabo OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Izvajanje naloge")
}
operationQueue.addOperation(operation)
// Prekliči nalogo pred njenim zagonom
operation.cancel()
Če je naloga že v teku, preklic morda ne bo takoj ustavil, zato je pomembno, da znotraj naloge preverite zastavico isCancelled in jo pravilno zaključite.