Использование инструментов, не показывающих счетчик ссылок

Я изо всех сил пытаюсь определить, что удерживает объекты, которые я удаляю, из иерархии представления и устанавливая в ноль (и насколько я знаю, устанавливая все делегаты в ноль и удаляя все уведомления), используя Распределение инструментов и / или Утечки.

У меня включена опция "Record Reference Counts", но я не вижу, где представлена ​​эта информация. В моем представлении нет столбца RefCt (см. Прикрепленное изображение). Как мне сделать так, чтобы это появилось? Я использую версию Xcode 8.0 (8A218a).

Есть ли способ проанализировать, какие объекты сохраняют подобъекты?

введите описание изображения здесь

2 ответа

Решение

Используйте отладчик визуальной памяти Xcode. Это описано в этом лейтмотиве.

Начиная с XCode 13.2...

Скриншот в вопросе выглядит так, как будто он использует инструмент Leaks. Вместо этого после выбора « Продукт/Профиль » в строке меню XCode выберите «Распределения» вместо «Утечки».

При нажатии на кнопку «Запись» не отпускайте нажатие. Вы увидите опцию «Параметры записи», которую вы должны выбрать. В появившемся диалоговом окне выберите параметр «Записывать счетчики ссылок» и нажмите «Запись».

В левом нижнем углу приложения «Инструменты» есть фильтр. Введите название интересующего вас класса. Если есть какие-либо активные экземпляры этого класса, теперь вы должны увидеть строку для него на главной панели с именем класса, указанным в столбце «Категория». Перетащите указатель мыши на имя на главной панели. Рядом с именем должна появиться кнопка со стрелкой. Нажмите на нее.

Затем вам будут представлены активные экземпляры этого класса. Вы увидите столбец «Адрес». Сделайте то же самое, что вы делали ранее со столбцом «Категория», перетащив курсор на адрес активного экземпляра (или одного из активных экземпляров, если их несколько) и нажмите появившуюся кнопку со стрелкой.

Теперь вы, наконец, увидите таблицу, в которой показаны удержания и выпуски вашего объекта, которая включает столбец для «RefCt».

Другие вопросы по тегам