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