Back to questions
Avito
Junior — Middle
69
Какие существуют типы утечек памяти и как их выявлять?
Companies where asked
Answer from AI
sobes.tech AI
В iOS существуют несколько типов утечек памяти:
- Циклические ссылки (retain cycles): когда два объекта удерживают друг друга сильными ссылками, что препятствует их освобождению.
- Утечки из-за неправильного использования делегатов: если делегат объявлен как сильная ссылка, это может привести к циклу.
- Утечки из-за неосвобождённых ресурсов: например, таймеры, наблюдатели уведомлений, которые не были удалены.
Для выявления утечек используют инструменты Xcode:
- Instruments (Leaks и Allocations) — позволяет отследить объекты, которые не освобождаются.
- Memory Graph Debugger — визуализирует связи между объектами и помогает найти циклы.
Пример: если в классе ViewController есть сильная ссылка на таймер, который не останавливается и не обнуляется, это может привести к утечке.