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