Junior — Middle
Kad notiek automātiska atmiņas atbrīvošana objektam, uz kuru norāda stiprojo atsauces skaitītājs, un tas kļūst nepieejams?
sobes.tech AI
Atbilde no AI
Automātiska atmiņas atbrīvošana priekš objekta ar stiprajām atsaucēm notiek, kad stiprojo atsauces skaitītājs uz šo objektu sasniedz nulli, tas ir, kad neviena stiprā atsauce neparāda uz objektu.
Šajā brīdī objekts kļūst nepieejams un to var izdzēst no atmiņas pārvaldības sistēmas (iOS ARC). Ja ir vismaz viena stiprā atsauce, objekts paliek atmiņā.
Piemērs:
class MyClass {}
var a: MyClass? = MyClass() // stipro atsauču skaitītājs = 1
var b = a // stipro atsauču skaitītājs = 2
a = nil // stipro atsauču skaitītājs = 1
b = nil // stipro atsauču skaitītājs = 0, objekts tiek atbrīvots
Tādējādi atmiņa tiek automātiski atbrīvota, kad objekts vairs nav nepieciešams un uz to nav stipro atsauču.