Junior — Middle
Kada dolazi do automatskog oslobađanja memorije za objekat na koji ukazuje brojač jakih referenci i on postaje nedostupan?
sobes.tech АИ
Одговор од АИ
Automatsko oslobađanje memorije za objekat sa snažnim referencama dešava se kada se brojač snažnih referenci na taj objekat smanji na nulu, tj. kada nijedna snažna referenca ne ukazuje na objekat.
U tom trenutku, objekat postaje nedostupan i može biti uklonjen od strane sistema za upravljanje memorijom (ARC u iOS). Ako postoji bar jedna snažna referenca, objekat ostaje u memoriji.
Primer:
class MyClass {}
var a: MyClass? = MyClass() // brojač snažnih referenci = 1
var b = a // brojač snažnih referenci = 2
a = nil // brojač snažnih referenci = 1
b = nil // brojač snažnih referenci = 0, objekat se oslobađa
Na ovaj način, oslobađanje memorije se dešava automatski kada objekat više nije potreban i na njega nema snažnih referenci.