Sobes.tech
Junior — Middle

Kad ir kad būtu piemērots izmantot vājo atsauci ar 'weak let'?

sobes.tech AI

Atbilde no AI

Vājā atsauce ar weak let Swift tiek izmantota, lai novērstu stipru atsauces ciklus (retention cycles), īpaši slēdžos un delegātos. Tā ir piemērota, ja objekts, uz kuru atsaucas, var tikt deinitializēts, un jūs nevēlaties to turēt atmiņā.

Piemēram, slēdžī, kas iekļauj self, lai novērstu atmiņas noplūdi, tiek izmantota vāja atsauce:

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

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

    func doSomething() {
        print("Darbība")
    }
}

Šeit weak novērš self turēšanu slēdžī, ļaujot ViewController brīvi atbrīvoties no atmiņas, kad tas vairs nav nepieciešams.