Sobes.tech
Junior — Middle

Objective-C'de otomatik hafıza yönetimi ARC'nin çalışma prensibini açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

ARC (Otomatik Referans Sayımı), Objective-C'de bellek yönetimi sağlayan bir mekanizmadır ve nesnelere yapılan referansların sayısını otomatik olarak takip eder ve nesne artık kullanılmadığında belleği serbest bırakır.

ARC'nin çalışma prensibi, referans sayımına (retain count) dayanır:

  • Bir nesne oluşturulduğunda, referans sayısı 1'dir.
  • Nesne yeni bir değişkene atandığında, sayısı artar (retain).
  • Değişken kapsam dışına çıktığında veya nil yapıldığında, sayısı azalır (release).
  • Sayı 0'a ulaştığında, nesne otomatik olarak bellekten silinir.

Örnek:

NSObject *obj = [[NSObject alloc] init]; // retain sayısı = 1
self.property = obj; // retain sayısı artar
obj = nil; // retain sayısı azalır
// Tüm referanslar nesneye kaybolduğunda, bellek otomatik olarak serbest bırakılır

Geliştirici retain/release çağrılarını açıkça yapmaya gerek duymaz, ARC bu çağrıları derleme aşamasında ekler, bu da bellek yönetimi hatası olasılığını azaltır, örneğin sızıntılar veya çift serbest bırakmalar gibi.