Sobes.tech
Junior — Middle

Când are loc eliberarea automată a memoriei pentru un obiect la care indică un contor de referințe puternice și devine inaccesibil?

sobes.tech AI

Răspuns de la AI

Eliberarea automată a memoriei pentru un obiect cu referințe puternice are loc atunci când contorul de referințe puternice către acel obiect ajunge la zero, adică nicio referință puternică nu mai indică spre obiect.

În acest moment, obiectul devine inaccesibil și poate fi eliminat de sistemul de gestionare a memoriei (ARC în iOS). Dacă există cel puțin o referință puternică, obiectul rămâne în memorie.

Exemplu:

class MyClass {}

var a: MyClass? = MyClass() // contor de referințe puternice = 1
var b = a                   // contor de referințe puternice = 2

a = nil                    // contor de referințe puternice = 1
b = nil                    // contor de referințe puternice = 0, obiectul este eliberat

Astfel, eliberarea memoriei are loc automat atunci când obiectul nu mai este necesar și nu mai există referințe puternice către el.