Middle
Ce știi despre lista de captură în Swift?
sobes.tech AI
Răspuns de la AI
În Swift, lista de captură este utilizată în closures pentru a gestiona captarea variabilelor din contextul înconjurător, în special pentru a evita ciclurile de referințe puternice (retention cycles).
Lista de captură se scrie între paranteze pătrate înainte de corpul closure-ului și permite specificarea modului în care variabilele vor fi capturate — prin referință puternică (strong), slabă (weak) sau fără proprietar (unowned).
Exemplu:
class ViewController {
var name = "Swift"
lazy var closure: () -> Void = { [weak self] in
guard let self = self else { return }
print(self.name)
}
}
Aici, [weak self] previne menținerea unei referințe puternice la self în interiorul closure-ului, ceea ce ajută la evitarea scurgerilor de memorie.
Prin urmare, lista de captură este un instrument pentru controlul ciclului de viață al obiectelor capturate de closure.