Sobes.tech
Junior — Middle

Wanneer is het geschikt om een zwakke verwijzing te gebruiken met 'weak let'?

sobes.tech AI

Antwoord van AI

De zwakke verwijzing met weak let in Swift wordt gebruikt om sterke verwijzingscycli (retentiecycli) te voorkomen, vooral in closures en delegates. Het is geschikt wanneer het object waarnaar wordt verwezen kan worden gedeïntialiseerd, en je het niet in het geheugen wilt houden.

Bijvoorbeeld, in een closure die self vastlegt, om geheugenlekken te voorkomen, wordt een zwakke verwijzing gebruikt:

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

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

    func doSomething() {
        print("Actie")
    }
}

Hier voorkomt weak dat self wordt vastgehouden door de closure, waardoor ViewController uit het geheugen kan worden vrijgegeven wanneer het niet meer nodig is.