Junior — Middle
Tətbiqdə yaddaş sızmasının qarşısını almağın yolları hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
iOS tətbiqlərində yaddaş sızıntıları tez-tez obyektlər arasında dövr edən istinadlar səbəbindən baş verir, xüsusən də closures və delegatlar istifadə edilərkən. Yaddaş sızıntılarını qarşısını almaq üçün aşağıdakı yanaşmaları istifadə etmək olar:
- Zəif (weak) və sahibsiz (unowned) istinadların istifadəsi — bu, güclü istinad döngülərini qırmağa kömək edir. Məsələn, delegatlar adətən weak kimi elan edilir.
- Obyektlərin həyat dövrünün düzgün idarə olunması — resursların azad olunması və deinit metodlarında bildirişlərin ləğvi.
- Xcode alətlərindən istifadə (Instruments, Leaks, Memory Graph Debugger) sızıntıları aşkar etmək və təhlil etmək üçün.
- Closure-lər daxilində güclü istinadlardan qaçın — döngüləri qarşısını almaq üçün [weak self] və ya [unowned self] istifadə edin.
Weak self istifadə nümunəsi:
someAsyncCall { [weak self] result in
guard let self = self else { return }
self.updateUI(with: result)
}
Bu metodlar yaddaşın səmərəli istifadəsini təmin etməyə və sızıntıların qarşısını almağa kömək edir.