Junior — Middle
У којим случајевима се сматра да је променљива изгубила своју актуелност и уклања се из меморије?
sobes.tech АИ
Одговор од АИ
U iOS-u, promenljiva se smatra zastarelom i može biti uklonjena iz memorije kada na nju više nemaju snažne reference (strong references). To je moguće zahvaljujući automatskom upravljanju memorijom putem ARC (Automatic Reference Counting).
Glavni slučajevi kada se objekat uklanja iz memorije:
- Sve snažne reference na objekat su obrisane ili postavljene na nil.
- Objekat više nije zadržan od strane drugog objekta.
Na primer, ako imate promenljivu koja referiše na objekat i dodelite joj nil ili izađe iz opsega, brojač referenci se smanjuje. Kada brojač dostigne nulu, objekat se oslobađa.
class MyClass {}
var obj: MyClass? = MyClass() // brojač referenci = 1
obj = nil // brojač referenci = 0, objekat je uklonjen
Tako, promenljiva postaje zastarela kada više nema snažnih referenci na objekat na koji se odnosila, i memorija objekta se oslobađa.