Junior — Middle
Hangi bellek sızıntısı türleri vardır ve nasıl tespit edilirler?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta birkaç bellek sızıntısı türü vardır:
- Döngüsel referanslar (retain cycle'lar): iki nesne birbirini güçlü referanslarla tutuyorsa, bu serbest bırakılmalarını engeller.
- Delegelerin yanlış kullanımı nedeniyle sızıntılar: delegat güçlü referans olarak ilan edilirse, bu bir döngüye yol açabilir.
- Serbest bırakılmamış kaynaklar nedeniyle sızıntılar: örneğin, zamanlayıcılar, bildirim gözlemcileri, kaldırılmamış olanlar.
Sızıntıları tespit etmek için Xcode araçları kullanılır:
- Instruments (Leaks ve Allocations) — serbest bırakılmayan nesneleri izler.
- Memory Graph Debugger — nesneler arasındaki bağlantıları görselleştirir ve döngüleri bulmaya yardımcı olur.
Örnek: ViewController sınıfında, durdurulmayıp sıfırlanmayan güçlü bir zamanlayıcıya sahipse, bu bir sızıntıya yol açabilir.