Sobes.tech
Junior — Middle

Puteți explica conceptul de Capture List în contextul limbajului Swift și aplicarea sa?

sobes.tech AI

Răspuns de la AI

În Swift, Lista de Captură este un mecanism care permite controlul modului în care o închidere (closure) capturează variabile din contextul înconjurător, în special pentru gestionarea memoriei și prevenirea ciclurilor de retenție.

Lista de Captură se scrie între paranteze pătrate înainte de corpul închiderii și indică modul în care trebuie să captureze variabilele: prin referință puternică (strong), slabă (weak) sau fără proprietar (unowned).

Exemplu:

class ViewController {
    var name = "Main"

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

Aici, [weak self] previne un ciclu de retenție puternic între închidere și obiectul self, ceea ce este important pentru eliberarea corectă a memoriei.

Astfel, Lista de Captură ajută la gestionarea ciclului de viață al obiectelor din interiorul închiderilor și la evitarea scurgerilor de memorie.