Sobes.tech
Junior — Middle

Czy możesz podać przykład sytuacji, w której słaba referencja jest automatycznie ustawiana na null?

sobes.tech AI

Odpowiedź od AI

Słaba referencja jest automatycznie anulowana, gdy obiekt, na który się odwołuje, zostaje zwolniony z pamięci (czyli gdy nie ma już silnych referencji do niego).

Na przykład w iOS, używając słabej referencji weak do delegata:

class ViewController: UIViewController {
    weak var delegate: SomeDelegate?
}

Jeśli obiekt delegata zostanie zniszczony (np. wyjdzie z zakresu i zostanie zwolniony), to delegate automatycznie stanie się nil. Zapobiega to odwoływaniu się do już zwolnionego obiektu i pomaga unikać błędów oraz wycieków pamięci.