Junior — Middle
Навъҳои шикасти хотира кадомҳоянд ва чӣ гуна онҳоро муайян кардан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Дар iOS съществуват няколко вида течове на памет:
- Циклични препратки (цикли на задържане): когато два обекта си държат силни препратки един към друг, което пречи на освобождаването им.
- Течове поради неправилна употреба на делегати: ако делегатът е обявен като силна препратка, това може да доведе до цикъл.
- Течове поради неосвободени ресурси: например таймери, наблюдатели на известия, които не са били премахнати.
За откриване на течове се използват инструментите на Xcode:
- Instruments (Leaks и Allocations) — позволява да се проследят обекти, които не се освобождават.
- Memory Graph Debugger — визуализира връзките между обектите и помага да се намерят цикли.
Пример: ако в класа ViewController има силна препратка към таймер, който не се спира и не се нулира, това може да доведе до теч.