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.