Обнаружить зомби во время выполнения - PullRequest
0 голосов
/ 21 февраля 2012

Есть ли способ найти зомби во время выполнения в target-c?
Я ищу способ запретить объекту вызывать метод у зомби, есть ли способ обнаружить его без созданиясбой приложения?
Я знаю о слабой ссылке под ARC iOS5 и практике программирования на основе здравого смысла.
Я думал, что можно было бы задать размер объекта (я знаю, что, возможно, "внутри" есть только ссылки), ноесли объект все еще существует, он должен дать значение, если он, вероятно, не просто размер одного указателя.
Использование malloc_size(pointerToObject)
Может ли это работать?

ОБНОВЛЕНИЕ: я знаю, как запускать инструменты для обнаружения зомби

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

Я не думаю, что Андреа спрашивает, как запустить инструменты для обнаружения зомби, я думаю, что она хочет защититься от вызова освобожденного экземпляра во время выполнения.Я не уверен, какой размер malloc вернется в этом случае.Я думаю, что все, что вы придумали, кроме того, что они сделали с NSZombies (что никогда не должно быть по-настоящему бесплатным экземплярам), будет бесполезным и будет работать только часть времени.Я думаю, что ваш лучший вариант - это скучное старое старательное программирование и профилирование с инструментами, которые позволяют избежать этих вызовов, а не пытаться отследить ошибку во время выполнения.

0 голосов
/ 21 февраля 2012

В меню схемы (вверху слева, рядом с запуском / остановкой).Выберите «Редактировать схему ...».Лист появится.Выберите схему Run / Debug там.Выберите вкладку «Диагностика» в центральной панели.Проверьте зомби.

0 голосов
/ 21 февраля 2012

Попробуйте запустить приложение с помощью инструментов и выберите шаблон «Зомби».

...