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.