Junior — Middle
Puteți explica mecanismul de gestionare automată a memoriei în ARC și cum eliberează obiectele neutilizate?
sobes.tech AI
Răspuns de la AI
ARC (Numărătoarea Automată a Referințelor) este un mecanism de gestionare a memoriei în iOS care urmărește automat numărul de referințe către obiecte și le eliberează atunci când nu mai sunt necesare.
Principiul de funcționare:
- Fiecare obiect are un contor de referințe (numărul de retenție).
- Când se creează o referință către un obiect, contorul crește.
- Când o referință este eliminată, contorul scade.
- Când contorul ajunge la zero, obiectul este eliminat automat din memorie.
ARC funcționează în etapa de compilare, inserând apeluri retain/release în cod, astfel încât programatorul nu trebuie să gestioneze manual memoria.
Exemplu în Swift:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Иван") // contor de retenție = 1
var person2 = person1 // contor de retenție = 2
person1 = nil // contor de retenție = 1
person2 = nil // contor de retenție = 0, obiectul Person este eliminat
Astfel, ARC eliberează automat obiectele atunci când nu mai există referințe active.