Sobes.tech
Назад к вопросам
Junior — Middle
68

Какие существуют типы утечек памяти и как их выявлять?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

В iOS существуют несколько типов утечек памяти:

  • Циклические ссылки (retain cycles): когда два объекта удерживают друг друга сильными ссылками, что препятствует их освобождению.
  • Утечки из-за неправильного использования делегатов: если делегат объявлен как сильная ссылка, это может привести к циклу.
  • Утечки из-за неосвобождённых ресурсов: например, таймеры, наблюдатели уведомлений, которые не были удалены.

Для выявления утечек используют инструменты Xcode:

  • Instruments (Leaks и Allocations) — позволяет отследить объекты, которые не освобождаются.
  • Memory Graph Debugger — визуализирует связи между объектами и помогает найти циклы.

Пример: если в классе ViewController есть сильная ссылка на таймер, который не останавливается и не обнуляется, это может привести к утечке.