Junior — Middle
Mikor történik az automatik memóriafelszabadítás egy olyan objektum esetében, amelyre egy erős hivatkozásszámláló mutat, és az hozzáférhetetlenné válik?
sobes.tech MI
Válasz az MI-től
Az erős hivatkozásokkal rendelkező objektumok automatikus memóriafelszabadítása akkor történik, amikor az adott objektum erős hivatkozásainak száma nullára csökken, vagyis már nincs erős hivatkozás, amely az objektumra mutat.
Ebben a pillanatban az objektum elérhetetlenné válik, és a memóriakezelő rendszer (ARC az iOS-en) eltávolíthatja. Ha legalább egy erős hivatkozás létezik, az objektum továbbra is a memóriában marad.
Példa:
class MyClass {}
var a: MyClass? = MyClass() // erős hivatkozások száma = 1
var b = a // erős hivatkozások száma = 2
a = nil // erős hivatkozások száma = 1
b = nil // erős hivatkozások száma = 0, az objektum felszabadul
Így a memória automatikusan felszabadul, amikor az objektumra már nincs szükség, és nincs rá erős hivatkozás.