Swift ARC Nedir?
ARC Nedir?
Swift dilinde, ARC (Automatic Reference Counting), belleği yönetmek ve uygulamanızın bellek kullanımını optimize etmek için kullanılan bir teknolojidir. Bu sistem, nesnelerin yaşam döngüsünü otomatik olarak yönetir ve kullanmadığınız nesneleri otomatik olarak temizler.
ARC Nasıl Çalışır?
ARC, her bir nesneye bir referans sayacı (reference count) atar. Bu sayaç, nesneye kaç tane güçlü referans (strong reference) olduğunu takip eder. Referans sayacı sıfıra düştüğünde, ARC bu nesneyi bellekten otomatik olarak temizler.
Güçlü ve Zayıf Referanslar
Güçlü referanslar (strong references), nesnenin bellekte tutulmasını sağlar. Eğer bir nesneye güçlü bir referans varsa, bu nesne bellekten temizlenmez. Zayıf referanslar (weak references) ise, nesnenin referans sayısını artırmaz ve bu sayede döngüsel referanslardan (retain cycles) kaçınmanıza yardımcı olur.
Örnek;
class Person {
let name: String
init(name: String) {
self.name = name
print("\(name) initialized")
}
deinit {
print("\(name) deinitialized")
}
}
var person1: Person? = Person(name: "John")
var person2: Person? = person1
person1 = nil
person2 = nil