Junior — Middle
Kdy dochází k automatickému uvolnění paměti pro objekt, na který ukazuje počítadlo silných odkazů, a stává se nedostupným?
sobes.tech AI
Odpověď od AI
Automatické uvolnění paměti pro objekt s pevnými odkazy nastává, když se čítač pevných odkazů na tento objekt dostane na nulu, tj. žádný pevný odkaz na objekt již neukazuje.
V tomto okamžiku je objekt nedostupný a může být systémem správy paměti (ARC v iOS) odstraněn. Pokud existuje alespoň jeden pevný odkaz, objekt zůstává v paměti.
Příklad:
class MyClass {}
var a: MyClass? = MyClass() // čítač pevných odkazů = 1
var b = a // čítač pevných odkazů = 2
a = nil // čítač pevných odkazů = 1
b = nil // čítač pevných odkazů = 0, objekt je uvolněn
Tímto způsobem dochází k automatickému uvolnění paměti, když již objekt není potřeba a na něj nejsou žádné pevné odkazy.