Sobes.tech
Junior — Middle

Uygulamalarda hangi tür bellek sızıntıları olduğunu açıklayabilir misin?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS uygulamalarında bellek sızıntılarının temel türleri, nesne referanslarının yanlış yönetimiyle ilgilidir:

  • Güçlü Referans Döngüleri (Strong Reference Cycles) — iki nesne birbirine güçlü referanslar içerdiğinde ve hiçbiri serbest bırakılamadığında.
  • Kapanışlar (Closures) nedeniyle Sızıntılar — bir kapanış self'i güçlü bir referansla yakalarsa, bu bir referans döngüsüne yol açabilir.
  • Serbest bırakılmamış kaynaklar — deinit çağrısı yapılmadığı veya yanlış kullanıldığı için serbest bırakılmayan nesneler.

Güçlü referans döngüsüne örnek:

class Person {
    var apartment: Apartment?
}

class Apartment {
    var tenant: Person?
}

let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // güçlü referans döngüsü

Bunun önüne geçmek için zayıf (weak) veya sahip olmayan (unowned) referanslar kullanılır.