Junior — Middle
În ce situații este preferabil să folosiți o referință slabă (weak var) în Swift?
sobes.tech AI
Răspuns de la AI
Referințele slabe (weak var) în Swift sunt utilizate pentru a preveni ciclurile de referințe puternice (retain cycles), care duc la scurgeri de memorie. Se recomandă utilizarea referințelor slabe în următoarele situații:
- Când obiectul A face referire la obiectul B, iar obiectul B face referire înapoi la obiectul A, și una dintre aceste referințe trebuie să fie slabă pentru a evita un ciclu.
- În delegați (delegates), unde delegatul este de obicei declarat ca weak pentru a nu menține obiectul delegat în memorie.
Exemplu:
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// actualizarea interfeței
}
}
Aici, self este capturat ca o referință slabă pentru a evita un ciclu de retenție între timer și controler.