Sobes.tech
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ń.