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