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