iOS'ta otomatik ve manuel bellek yönetimi nasıl uygulanır ve kaynakların yönetimi için hangi mekanizmalar kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta bellek yönetimi iki ana yöntemle gerçekleştirilir: otomatik ve manuel.
-
Otomatik Bellek Yönetimi (ARC — Otomatik Referans Sayımı)
ARC, derleyiciye gömülü bir mekanizmadır ve Objective-C ve Swift nesneleri için otomatik olarak retain/release çağrılarını ekler. Bir nesneye olan referans sayısını sayar ve sayaç sıfıra ulaştığında belleği serbest bırakır.
Örnek:
class Person { var name: String init(name: String) { self.name = name } } var p1: Person? = Person(name: "Иван") var p2 = p1 // referans sayısı artar p1 = nil // sayıcı azalır p2 = nil // nesne serbest bırakılır -
Manuel Bellek Yönetimi
Eski iOS sürümlerinde (ARC'den önce), geliştirici nesnelerin yaşam döngüsünü yönetmek için
retain,releaseveautoreleasemetodlarını manuel olarak çağırırdı. -
Kaynakların Yönetimi
Belleğin yanı sıra, kaynakların (dosyalar, ağ bağlantıları, zamanlayıcılar) yönetimi için Swift'te
deinitgibi desenler kullanılır ve nesne yok edildiğinde kaynaklar serbest bırakılır.Ayrıca, geçici nesneleri yönetmek için
autoreleasepoolyapıları da yaygın olarak kullanılır.
Bu şekilde, ARC bellekle çalışma işini önemli ölçüde kolaylaştırır, sızıntı olasılığını azaltır ve manuel yönetim nadiren ve sadece belirli durumlarda kullanılır.