Sobes.tech
Junior — Middle

Când este potrivit să folosiți o referință slabă cu 'weak let'?

sobes.tech AI

Răspuns de la AI

Referința slabă cu weak let în Swift este utilizată pentru a preveni ciclurile de referințe puternice (cicluri de retenție), în special în closures și delegați. Este potrivită atunci când obiectul la care se face referire poate fi dezinicializat și nu dorești să îl menții în memorie.

De exemplu, într-o closure care capturează self, pentru a evita scurgerile de memorie, se face o referință slabă:

class ViewController {
    var closure: (() -> Void)?

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

    func doSomething() {
        print("Acțiune")
    }
}

Aici, weak previne reținerea lui self de către closure, ceea ce permite ViewController să fie eliberat din memorie atunci când nu mai este necesar.