Sobes.tech
Junior — Middle

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.

  1. 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
    
  2. 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, release ve autorelease metodlarını manuel olarak çağırırdı.

  3. 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 deinit gibi desenler kullanılır ve nesne yok edildiğinde kaynaklar serbest bırakılır.

    Ayrıca, geçici nesneleri yönetmek için autoreleasepool yapı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.