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