Как отлаживать EXC_BAD_ACCESS только на устройстве - PullRequest
1 голос
/ 16 июля 2011

У меня есть некоторый код, который возвращает структуру, содержащую 2 объекта (объявлен как id).При попытке использовать один из объектов я получаю EXC_BAD_ACCESS, и приложение вылетает.Это происходит только на устройстве (ipad), а не в симуляторе.

Я установил NSZombieEnabled на ДА, однако информация не записывается на консоль.Я не знаю, является ли проблемой то, что я использую рабочую область в Xcode 4, один проект для моего приложения и другой, который создает библиотеку, которая используется в моем приложении.EXC_BAD_ACCESS происходит во втором проекте, поэтому я не знаю, будет ли NSZombieEnabled применяться ко второму проекту?

Как мне решить эту проблему?Тем более, что я это происходит только на устройстве (даже идет как запланировано на симуляторе), и это во втором проекте?

РЕДАКТИРОВАТЬ: Это метод , где происходит EXC_BAD_ACCESS,в строке 62, в sortRange.lower -

Ответы [ 2 ]

1 голос
/ 16 июля 2011

NSZombieEnabled работает только на симуляторе, а не на устройстве, поэтому, вероятно, скрывает проблему. Запустите Product> Analyse (⇧⌘B) для подсказок. Труднее сказать больше, не глядя на код. Как говорит Михай, ваши объекты, вероятно, перепроизводятся, что является наиболее распространенной причиной EXC_BAD_ACCESS.

0 голосов
/ 16 июля 2011

Кажется, что один из ваших объектов автоматически освобожден, прежде чем вы пытаетесь получить к нему доступ. Поскольку у iPad меньше памяти, чем у компьютера, на котором вы его используете, он выпускается быстрее, поэтому он недоступен. Попробуйте NSLog оба объекта как раз перед строкой, в которой вы получаете сообщение об ошибке, и посмотрите, какая из них является проблемой, а затем отследите ее источник и каким-то образом сохраните ее. Также не забудьте выпустить его после того, как вы закончили его использовать. Некоторый пример кода будет полезен.

...