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.