Junior — Middle
Sistem içinde nesne referanslarının izlenmesi mekanizması nasıl uygulanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta nesne referanslarını izleme mekanizması, otomatik referans sayımı (ARC — Automatic Reference Counting) sistemiyle uygulanır.
Her nesnenin bir referans sayacı vardır; bu, nesneye yeni güçlü bir referans oluşturulduğunda artar ve referans silindiğinde veya nil yapıldığında azalır. Sayacın sıfıra ulaşmasıyla nesne otomatik olarak bellekten serbest bırakılır.
Örnek:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Alex") // referans sayısı = 1
var person2 = person1 // referans sayısı = 2
person1 = nil // referans sayısı = 1
person2 = nil // referans sayısı = 0, nesne serbest bırakılır
İki nesne birbirine güçlü referanslar (retain cycle) ile referans verdiğinde, bu döngüsel referansları (retains cycles) önlemek önemlidir çünkü bu durum bellek sızıntılarına yol açar. Bu amaçla, zayıf (weak) ve sahip olmayan (unowned) referanslar kullanılır.