Как вы узнаете, что удерживает объект в Инструментах?

Недавно я преобразовал проект iOS в ARC. Один из контроллеров представления не вызывает его метод dealloc и не отменяется в соответствии с инструментами.

Я дважды проверил все свои свойства и установил соответствующие для слабых. Я также удостоверился, что все, что имеет контроллер представления в качестве делегата, отключилось в viewWillDisappear, но представление все еще хранится в памяти.

Я новичок в инструментах: как я могу узнать, что сохраняет этот взгляд?

Ответы

Ответ 1

Хорошо, если вы действительно застряли и программа сложна (или абстрагирована, в случае ARC), вы можете выявить пушки:

  • Откройте проект Xcode
  • Выберите исполняемый файл (при необходимости)
  • Нажмите cmd+i (Профиль)
  • Выберите инструмент "Утечки" в Le Wizard (если необходимо)
  • Нажмите Return, чтобы начать профилирование.
  • Упражнение для вашего приложения.
  • Нажмите "Стоп" в Инструментах
  • Убедитесь, что выбран инструмент "Выделения"
  • Нажмите и удерживайте кнопку всплывания с именем "Статистика"
  • Выберите элемент "Список объектов"
  • Найдите интересующее вас распределение, среди записей в списке объектов
  • Выберите выделение/объект
  • Нажмите "стрелку подробностей" справа от адреса в ячейке просмотра таблицы этого распределения
  • Теперь вы видите все события, связанные с распределением (операции выделения, освобождения, ссылки)
  • Нажмите cmd+shift+e для расширенной детали.
  • Пройдите через события в этом списке и найдите неисправность, которую вы ищете.