Junior — Middle
Mikor történik meg a memória felszabadítása, amit egy objektum foglal el?
sobes.tech MI
Válasz az MI-től
iOS-ben egy objektum memória felszabadítása akkor történik, amikor ennek az objektumnak a hivatkozásszáma (retain count) eléri a nullát. Ez azt jelenti, hogy senki sem hivatkozik többé az objektumra, és a rendszer felszabadíthatja a foglalt memóriát.
A modern alkalmazásokban az ARC (Automatikus Hivatkozásszámítás) kerül alkalmazásra, amely automatikusan növeli és csökkenti a hivatkozásszámot az objektumhoz való hozzárendelés és a hivatkozások eltávolítása során.
Példa:
class MyClass {}
var obj: MyClass? = MyClass() // hivatkozásszám = 1
obj = nil // hivatkozásszám = 0, az objektum felszabadul
Így a memória felszabadítása azután történik, hogy az utolsó tulajdonos megszűnik hivatkozni az objektumra.