Sobes.tech
Junior — Middle

Kedy dochádza k automatickému uvoľneniu pamäte pre objekt, na ktorý ukazuje počítadlo silných odkazov, a stáva sa nedostupným?

sobes.tech AI

Odpoveď od AI

Automatické uvoľnenie pamäte pre objekt so silnými odkazmi nastáva, keď sa čítač silných odkazov na tento objekt dostane na nulu, teda žiadny silný odkaz na objekt už neukazuje.

V tomto momente je objekt nedostupný a môže byť systémom správy pamäte (ARC v iOS) odstránený. Ak existuje aspoň jeden silný odkaz, objekt zostáva v pamäti.

Príklad:

class MyClass {}

var a: MyClass? = MyClass() // čítač silných odkazov = 1
var b = a                   // čítač silných odkazov = 2

a = nil                    // čítač silných odkazov = 1
b = nil                    // čítač silných odkazov = 0, objekt je uvoľnený

Týmto spôsobom dochádza k automatickému uvoľneniu pamäte, keď už objekt nie je potrebný a na neho nie sú žiadne silné odkazy.