Junior — Middle
Millal toimub objekti automaatne mälu vabastamine, millele viitab tugevate viidete loendur, ja see muutub kättesaamatuks?
sobes.tech AI
Vastus AI-lt
Automaatne mälu vabastamine objekti jaoks, millel on tugevad viited, toimub siis, kui tugevate viidete loendur sellele objektile jõuab nulli, st. kui ükski tugev viide ei viita objekti.
Sel hetkel muutub objekt kättesaamatuks ja seda võib eemaldada mäluhaldusüsteem (iOS-is ARC). Kui on vähemalt üks tugev viide, jääb objekt mälu alles.
Näide:
class MyClass {}
var a: MyClass? = MyClass() // tugevate viidete loendur = 1
var b = a // tugevate viidete loendur = 2
a = nil // tugevate viidete loendur = 1
b = nil // tugevate viidete loendur = 0, objekt vabastatakse
Nii toimub mälu automaatne vabastamine, kui objekt ei ole enam vajalik ja sellele ei ole tugevaid viiteid.