Junior — Middle
Kiedy następuje automatyczne zwolnienie pamięci dla obiektu, na który wskazuje licznik silnych referencji, i staje się niedostępny?
sobes.tech AI
Odpowiedź od AI
Automatyczne zwalnianie pamięci dla obiektu z silnymi odwołaniami następuje, gdy licznik silnych odwołań do tego obiektu osiąga zero, czyli żadne silne odwołanie nie wskazuje na obiekt.
W tym momencie obiekt staje się niedostępny i może zostać usunięty przez system zarządzania pamięcią (ARC w iOS). Jeśli istnieje co najmniej jedno silne odwołanie, obiekt pozostaje w pamięci.
Przykład:
class MyClass {}
var a: MyClass? = MyClass() // licznik silnych odwołań = 1
var b = a // licznik silnych odwołań = 2
a = nil // licznik silnych odwołań = 1
b = nil // licznik silnych odwołań = 0, obiekt jest zwalniany
W ten sposób zwalnianie pamięci odbywa się automatycznie, gdy obiekt nie jest już potrzebny i nie ma do niego silnych odwołań.