2010-12-02 2 views
1

я поставил точку останова сразу после этих строк:Debugger ложно показывает объект как ноль, пока объект был использован

NSInteger index = [self.aCombobox indexOfSelectedItem]; 
NSString *nameSelected = [self.names objectAtIndex:index]; 

Если я затем свернуть мыши над nameSelected, он показывает значение А если «ноль». Я набираю «po nameSelected» в консоли отладчика, он говорит, что строка «не указывает на действительный объект».

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

Есть ли причина, по которой отладчик ведет себя таким образом? Это затрудняет определение того, где настоящая проблема.

+2

Вы, безусловно, строите отладочную сборку, а не сборку релизов? – Tommy 2010-12-02 17:24:19

+0

Я делал выпускную сборку. Это была проблема. Поскольку отладчик, похоже, работает так же для приложений iPhone, запущенных на устройстве, как и для симулятора, я не думал, что выбор сборки будет иметь большое значение для отладки Cocoa. Следующая ссылка меня прямо: http://stackoverflow.com/questions/761628/xcode-cocoa-what-are-the-differences-between-debug-and-release-builds – Wienke 2010-12-03 02:21:15

ответ

1

Настоящий ответ - комментарий Томми к этому старому моему вопросу. Это была ошибка Xcode. Извините, что оставил это надолго,

2

Me (и миллионы других разработчиков iOS) делают это все время и не имеют проблем. Хотя это кажется глупым запросом, внесли ли вы изменения в источник при отладке (в частности, добавленные строки кода)? Если это так, отладчик все еще указывает на строку X из файла .o, в то время как ваш источник не синхронизирован.

+1

Yup, я могу сделать это с помощью Нет проблем. – 2010-12-02 17:15:48

0

На самом деле, наш опыт в том, что GDB с поддержкой iOS глючит, как что угодно. Мы часто наблюдали подобные ошибки. Может быть решение, но большую часть времени мы просто его всасывали и прибегали к NSLog Debugging.

Смежные вопросы