Карточка Middle ARC и циклы ссылок спрашивают часто обновлено
Как найти утечку памяти в iOS-приложении
Вопрос
Какими инструментами искать утечки и циклы ссылок?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Memory Graph Debugger в Xcode (граф объектов, восклицательные знаки на утечках), Instruments Leaks и Allocations (рост памяти по поколениям, Mark Generation), лог в deinit и тесты, проверяющие, что объект освобождён (addTeardownBlock со слабой ссылкой).
Ответ
Memory Graph Debugger в Xcode (граф объектов, восклицательные знаки на утечках), Instruments Leaks и Allocations (рост памяти по поколениям, Mark Generation), лог в deinit и тесты, проверяющие, что объект освобождён (addTeardownBlock со слабой ссылкой).
Разбор
Типичный сценарий проверки: открыть и закрыть экран 5 раз и посмотреть, сколько экземпляров контроллера живо.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
DispatchQueue.main.async и self
Следующий вопрос
Жизненный цикл объекта в Swift-рантайме
Ещё по теме «ARC и циклы ссылок»
- Когда нужен autoreleasepool в Swift
- Цикл ссылок через замыкание-свойство
- Почему делегат объявляют weak
- Когда уместен unowned
- Задача на Swift: какие объекты утекут из-за циклов ссылок
- Инструменты для поиска проблем с памятью
- Утечка через NotificationCenter
- Порядок событий при освобождении объекта