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