Junior — Middle
Kada įvyksta automatinis atminties išlaisvinimas objektui, kurį nurodo stiprių nuorodų skaitiklis, ir jis tampa neprieinamas?
sobes.tech AI
Atsakymas iš AI
Automatinis atminties išlaisvinimas objektui su stipriomis nuorodomis įvyksta, kai stiprių nuorodų skaitiklis į tą objektą pasiekia nulį, tai yra, kai joks stiprus nuorodas nebevadina į objektą.
Šiuo metu objektas tampa neprieinamas ir gali būti pašalintas iš atminties valdymo sistemos (iOS ARC). Jei yra bent viena stipri nuoroda, objektas lieka atmintyje.
Pavyzdys:
class MyClass {}
var a: MyClass? = MyClass() // stiprių nuorodų skaitiklis = 1
var b = a // stiprių nuorodų skaitiklis = 2
a = nil // stiprių nuorodų skaitiklis = 1
b = nil // stiprių nuorodų skaitiklis = 0, objektas išlaisvinamas
Taip atmintis automatiškai išlaisvinama, kai objektas nebėra reikalingas ir nėra stiprių nuorodų į jį.