Junior — Middle
Kada įvyksta objekto užimančios atminties laisvavimas?
sobes.tech AI
Atsakymas iš AI
iOS, objekto atlaisvinimas įvyksta tada, kai jo nuorodų skaitiklis (retain count) pasiekia nulį. Tai reiškia, kad niekas daugiau nebesiremi į objektą, ir sistema gali atlaisvinti užimamą atmintį.
Šiuolaikiniuose taikymuose naudojamas ARC (Automatic Reference Counting), kuris automatiškai didina ir mažina nuorodų skaitiklį priskyrimo ir nuorodų pašalinimo metu.
Pavyzdys:
class MyClass {}
var obj: MyClass? = MyClass() // nuorodų skaitiklis = 1
obj = nil // nuorodų skaitiklis = 0, objektas atlaisvinamas
Taip, atmintis yra atlaisvinama iškart po to, kai paskutinis objekto savininkas nustoja jį naudoti.