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.