Sobes.tech
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.