Sobes.tech
Junior — Middle

Када је погодна употреба слабе референце помоћу 'weak let'?

sobes.tech АИ

Одговор од АИ

Slaba referenca sa weak let u Swift-u koristi se za sprečavanje ciklusa jakih referenci (retention cycles), posebno u closures i delegate-ima. Pogodna je kada objekat na koji se odnosi može biti deinitializovan, i ne želite da ga zadržavate u memoriji.

Na primer, u closure-u koji hvata self, da bi se izbegli curenja memorije, koristi se slaba referenca:

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

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

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

Ovde weak sprečava da closure drži self, što omogućava da ViewController bude oslobođen iz memorije kada više nije potreban.