Фреймворки вызывают утечку памяти в macOS

У меня есть проект с пустой функцией main ().

Просто связав фреймворки с моим проектом (например, ImageIO.framework) В инструментах перечислены незадействованные выделения памяти после завершения работы моего приложения.

Инструменты XCode

1) Можно ли скрыть постоянные выделения памяти в инструментах, созданных Apple Frameworks, чтобы я мог сосредоточиться на утечках памяти?

2) Предназначено ли это, потому что Apple знает, что операционная система впоследствии все равно очищается?

0

Решение

Относительно 1 — выберите «Все распределения кучи» в типе распределения (а не «Все кучи»). & Аноним В.М.).

Что касается 2 — даже у Apple есть некоторые утечки памяти … но да, он будет освобожден после завершения работы приложения.

1

Другие решения

1) Вы можете быть владельцем объекта, созданного фреймворком. Читать Instruments Руководство пользователя, Поиск утечек памяти.

2) Да. Синглтоны и объекты, которые можно использовать повторно, например NSColorPanelне освобождены. Кроме того, быстрее выйти из приложения без очистки. Например, из документации NSManagedObject: «Базовые данные не гарантируют, что dealloc будет вызываться во всех сценариях (например, при выходе из приложения)».

1

По вопросам рекламы [email protected]