Sobes.tech
Junior — Middle

Come si può annullare un'attività in coda prima del suo avvio?

sobes.tech AI

Risposta dell'AI

Su iOS, per annullare un'attività in coda ma ancora non avviata, si può chiamare il metodo cancel() sull'oggetto attività (ad esempio, Operation o URLSessionTask). Se l'attività non è ancora iniziata, verrà annullata e non verrà eseguita.

Esempio con OperationQueue:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Esecuzione dell'attività")
}
operationQueue.addOperation(operation)

// Annulla l'attività prima che inizi
operation.cancel()

Se l'attività è già in esecuzione, l'annullamento potrebbe non fermarla immediatamente, quindi all'interno dell'attività si dovrebbe verificare il flag isCancelled e terminarla correttamente.