Sobes.tech
Junior — Middle

Pode explicar o conceito de Capture List no contexto da linguagem Swift e sua aplicação?

sobes.tech IA

Resposta da IA

Em Swift, a Lista de Captura é um mecanismo que permite controlar como a closure captura variáveis do contexto circundante, especialmente para gestão de memória e prevenção de ciclos de retenção.

A Lista de Captura é escrita entre colchetes antes do corpo da closure e indica como capturar as variáveis: por referência forte (strong), fraca (weak) ou sem proprietário (unowned).

Exemplo:

class ViewController {
    var name = "Main"

    func setup() {
        let closure = { [weak self] in
            guard let self = self else { return }
            print(self.name)
        }
        closure()
    }
}

Aqui, [weak self] evita um ciclo forte de retenção entre a closure e o objeto self, o que é importante para liberar a memória corretamente.

Assim, a Lista de Captura ajuda a gerir o ciclo de vida dos objetos dentro das closures e a evitar fugas de memória.