Sobes.tech
Junior — Middle

ARC'deki otomatik hafıza yönetimi mekanizmasını ve kullanılmayan nesneleri nasıl serbest bıraktığını açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

ARC (Otomatik Referans Sayımı) iOS'ta bellek yönetimi sağlayan bir mekanizmadır ve nesnelere olan referans sayısını otomatik olarak izler ve artık gerekmediğinde serbest bırakır.

Çalışma prensibi:

  • Her nesnenin bir referans sayacı (retain sayısı) vardır.
  • Bir nesneye referans oluşturulduğunda, sayaç artar.
  • Bir referans silindiğinde, sayaç azalır.
  • Sayaç sıfıra ulaştığında, nesne otomatik olarak bellekten kaldırılır.

ARC, derleme aşamasında çalışır ve retain/release çağrılarını koda ekler, bu nedenle programcı belleği manuel olarak yönetmek zorunda değildir.

Swift'te örnek:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Иван") // retain sayısı = 1
var person2 = person1 // retain sayısı = 2
person1 = nil // retain sayısı = 1
person2 = nil // retain sayısı = 0, Person nesnesi silinir

Bu şekilde, ARC aktif referanslar kalmadığında nesneleri otomatik olarak serbest bırakır.