Sobes.tech
Junior — Middle

Pode explicar o que significa a anotação @escaping em Swift?

sobes.tech IA

Resposta da IA

A anotação @escaping em Swift é usada para indicar que um encerramento (closure) passado para uma função pode ser chamado após a conclusão da própria função. Isto é importante quando o encerramento é guardado e chamado de forma assíncrona, por exemplo, em callbacks de pedidos de rede.

Sem @escaping, o encerramento é considerado não escapável (non-escaping), ou seja, deve ser chamado dentro do corpo da função e não pode ser guardado para ser chamado mais tarde.

Exemplo:

func fetchData(completion: @escaping () -> Void) {
    DispatchQueue.global().async {
        // Trabalho assíncrono
        completion() // chamada do encerramento após sair de fetchData
    }
}

Aqui, completion é marcado como @escaping porque é chamado de forma assíncrona após a saída de fetchData.