Junior — Middle
Projelerinizde bellek sızıntılarını tespit etmek için hangi yöntemleri kullanıyorsunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS projelerinde bellek sızıntılarını tespit etmek için genellikle aşağıdaki yöntemleri kullanıyorum:
- Instruments aracını (özellikle Leaks ve Allocations) kullanarak bellek kullanımını izleme ve sızıntıları tespit etme.
- Xcode Memory Graph Debugger ile güçlü referans döngülerini (retain cycles) analiz etme.
- Closure'lar ve delegeler içinde zayıf (weak) ve sahip olmayan (unowned) referansların doğru kullanımını kontrol etme.
Örnek: Nesne A, nesne B'yi tutuyorsa ve B, bir closure içinde A'yı weak olmadan tutuyorsa, bir retain cycle oluşur ve bellek serbest bırakılmaz.
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
print(self?.description ?? "No self")
}
}
}
Burada, [weak self] kullanımı sızıntıyı önler.