Retain cycle — кольцо сильных ссылок (A→B→A или object→closure→object), из‑за которого retain count не падает до нуля и объект не освобождается.
Разбор
- Типично: delegate без
weak, timer/closure без weak self, parent-child оба strong.
- Инструменты: Memory Graph Debugger, Instruments Leaks/Allocations.
- Симптом:
deinit не вызывается.
- Лечение:
weak/unowned, break cycle, invalidate timer.
Итог
Циклы — главная утечка в Swift-классах и колбэках.