Sobes.tech
Junior — Middle

Como é que se pode cancelar uma tarefa que está na fila antes de ela ser iniciada?

sobes.tech IA

Resposta da IA

No iOS, para cancelar uma tarefa que está na fila mas ainda não foi iniciada, pode chamar o método cancel() no objeto da tarefa (por exemplo, Operation ou URLSessionTask). Se a tarefa ainda não começou, ela será cancelada e não será executada.

Exemplo usando OperationQueue:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Execução da tarefa")
}
operationQueue.addOperation(operation)

// Cancelar a tarefa antes de ela iniciar
operation.cancel()

Se a tarefa já estiver em execução, o cancelamento pode não pará-la imediatamente, portanto, dentro da tarefa, deve-se verificar a bandeira isCancelled e encerrá-la corretamente.