Sobes.tech
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.