Sobes.tech
Middle

O que você sabe sobre a lista de captura em Swift?

sobes.tech IA

Resposta da IA

Em Swift, a lista de captura é usada em closures para gerenciar a captura de variáveis do contexto circundante, especialmente para evitar ciclos de referências fortes (retains).

A lista de captura é escrita entre colchetes antes do corpo do closure e permite especificar como as variáveis serão capturadas — por referência forte (strong), fraca (weak) ou sem proprietário (unowned).

Exemplo:

class ViewController {
    var name = "Swift"
    lazy var closure: () -> Void = { [weak self] in
        guard let self = self else { return }
        print(self.name)
    }
}

Aqui, [weak self] impede a manutenção de uma referência forte a self dentro do closure, o que ajuda a evitar vazamentos de memória.

Assim, a lista de captura é uma ferramenta para controlar o ciclo de vida dos objetos capturados pelo closure.