Junior — Middle
Objective-C-də avtomatik yaddaş idarəetmə ARC-nin işləmə prinsipini izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
ARC (Avtomatik Referansların Sayılması) Objective-C-də yaddaş idarəetmə mexanizmdir ki, obyektlərə olan referansların sayını avtomatik izləyir və obyekt artıq istifadə olunmadıqda yaddaşı azad edir.
ARC-nin işləmə prinsipi referansların sayımına (retain count) əsaslanır:
- Obyekt yaradıldıqda, onun sayğacı 1-ə bərabərdir.
- Obyekt yeni dəyişənə təyin olunduqda, sayğac artır (retain).
- Dəyişən sahədən çıxanda və ya nil-ə təyin olunduqda, sayğac azaldılır (release).
- Sayğac 0-a çatanda, obyekt avtomatik olaraq yaddaşdan silinir.
Nümunə:
NSObject *obj = [[NSObject alloc] init]; // retain count = 1
self.property = obj; // sayğac artır
obj = nil; // sayğac azalır
// Bütün referanslar obyektə yox olarsa, yaddaş avtomatik olaraq azad edilir
İnkişaf etdirici retain/release çağırışlarını açıq şəkildə etməyə ehtiyac yoxdur, ARC bu çağırışları tərtib zamanı əlavə edir, bu da yaddaş idarəetmə səhvlərinin, məsələn, sızmaların və ya ikiqat azad etmənin qarşısını alır.