Junior — Middle
Puteți explica principiul de funcționare al gestionării automate a memoriei ARC în Objective-C?
sobes.tech AI
Răspuns de la AI
ARC (Numărătoarea Automată a Referințelor) este un mecanism de gestionare a memoriei în Objective-C care urmărește automat numărul de referințe către obiecte și eliberează memoria atunci când obiectul nu mai este utilizat.
Principiul de funcționare al ARC se bazează pe numărătoarea referințelor (contorul de retenție):
- Când se creează un obiect, contorul său de referințe este 1.
- Când obiectul este atribuit unei noi variabile, contorul crește (retain).
- Când o variabilă părăsește domeniul de valabilitate sau este atribuită nil, contorul scade (release).
- Când contorul ajunge la 0, obiectul este șters automat din memorie.
Exemplu:
NSObject *obj = [[NSObject alloc] init]; // contor de retenție = 1
self.property = obj; // contorul crește
obj = nil; // contorul scade
// Când toate referințele către obiect dispar, memoria este eliberată automat
Dezvoltatorul nu trebuie să apeleze explicit retain/release, ARC inserează aceste apeluri în timpul compilării, reducând probabilitatea de erori de gestionare a memoriei, cum ar fi scurgeri sau dublă eliberare.