NSZombieEnabled ИСПРАВЛЯЕТ мое приложение?

Когда я нажимаю на определенный контроллер представления, затем открываю его, а затем повторяю, казалось бы, случайное количество раз, когда приложение в конечном итоге падает с ошибкой EXC_BAD_ACCESS.

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

Поэтому я решил установить NSZombieEnabled, чтобы увидеть, в чем проблема.

Но с этим включенным сбой не может быть воспроизведен. Все, что изменилось, - я установил флажок рядом с "NSZombieEnabled" в конфигурации моего активного исполняемого файла, и приложение работает отлично.

Есть идеи, что вызывает это?

Спасибо

1 ответ

Решение

У меня была такая же проблема с приложением iPhone в симуляторе. Это выдало бы EXC_BAD_ACCESS, когда я подключил определенный контроллер представления, но как только NSZombieEnabled был включен, ошибка исчезла.

Чтобы сузить его, я закомментировал все выпуски в dealloc контроллера потрескавшегося представления, который удерживал приложение от сбоев, а затем раскомментировал их по одному, пока он снова не рухнул, обнаружив вызывающую переменную переменную.

В моем случае это был сам оператор release переменной, который бросал EXC_BAD_ACCESS

Я не могу сказать вам, как именно это исправить, кроме как не выпускать. Я смог заставить его работать нормально после настройки и очистки кода, но когда я попытался откатить изменения, чтобы получить ошибку снова и сузить точное исправление, я не смог воспроизвести проблему. Я на самом деле получил его при первом откате, но больше никогда. Может быть, есть что-то экологическое на работе?

Это не совсем ответ, но, возможно, он укажет кому-то правильное направление.

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