Sobes.tech
Junior — Middle

Como implementar a execução assíncrona de tarefas em iOS usando OperationQueue?

sobes.tech IA

Resposta da IA

No iOS, para a execução assíncrona de tarefas, pode usar a classe OperationQueue, que gere uma fila de objetos Operation.

Principais passos:

  1. Crie uma subclasse de Operation ou use BlockOperation para definir a tarefa.
  2. Adicione a operação à fila OperationQueue.
  3. A fila executará as operações em segundo plano, permitindo não bloquear a thread principal da interface de utilizador.

Exemplo de uso de OperationQueue com BlockOperation:

let queue = OperationQueue()

let operation = BlockOperation {
    // Tarefa longa
    for i in 1...5 {
        print("Passo \(i) em execução")
        Thread.sleep(forTimeInterval: 1)
    }
    print("Tarefa concluída")
}

queue.addOperation(operation)

Se precisar atualizar a UI após a execução da operação, isso é feito através do thread principal:

operation.completionBlock = {
    OperationQueue.main.addOperation {
        // Atualização da UI
        print("Atualizando a interface")
    }
}

OperationQueue permite gerir prioridades, dependências e o número de tarefas que são executadas simultaneamente, o que é útil para cenários assíncronos complexos.