Нахождение сообщений, отправленных в освобожденные объекты
Сочтите сообщения отправленными в освобожденные объекты с помощью шаблона Zombies в Инструментах. Сообщение, отправленное в освобожденный объект (зомби), может заставить Ваше приложение отказывать.
Откройте свой проект в XCode. При большинстве обстоятельств у Вас будут лучшие результаты, находящие сообщения отправленный Зомби при открытии приложения и Инструментов из XCode.
Кнопка запуска имеет четыре опции. Удержите Кнопку запуска, пока меню не появляется, и выберите Profile.
Окно шаблона Instruments появляется. Выберите шаблон Zombies.
Нажмите Кнопку записи и осуществите свое приложение, пока не появится Зомби Переданное диалоговое окно.
Щелкните по кнопке фокусировки направо от текста сообщения в диалоговом окне.
Откройте Расширенного Подробного инспектора в области боковой панели и дважды щелкните по записи Зомби в конечном счете столбец Type объектной таблицы истории.
Дважды щелкните по ответственной вызывающей стороне в разделе Stack Trace Расширенного Подробного инспектора для отображения ответственного кода.
Шаблон Instruments Zombies открывает инструмент Выделений и также вносит существенное изменение в Вашу среду. Шаблон Zombies включает переменную среды отладки NSZombieEnabled=YES
который заставляет все объекты Objective C быть превращенными в объекты зомби вместо того, чтобы быть освобожденным после завершения их -dealloc
метод. Это заменяет объектом типа NSZombie
для объектов, выпущенных к подсчету ссылок нуля. Это приводит к большому росту постоянной памяти при выполнении с этим шаблоном.
Когда NSZombie
объект передается, Зомби, Переданное диалоговое окно появляется. При щелчке по кнопке фокусировки направо от сообщения в Зомби Переданное диалоговое окно выводит на экран полную историю памяти сверхвыпущенного объекта.
Обратите внимание на то, что у Зомби Переданное диалоговое окно есть точка наверху, выровненный с фиолетовым треугольником во временной шкале. Если Зомби, Переданное диалоговое окно больше не видимо и Вы хотите видеть его снова, щелкните по фиолетовому треугольнику.