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