Отладчик Xcode против NSLog - словарь ключей и значений - PullRequest
3 голосов
/ 03 апреля 2011

Я пытаюсь лучше использовать отладчик, а не просто распечатывать отладочное сообщение через NSLog.Этим утром я подумал, что мне это очень пригодится - узнать, как изменились значения словаря KVO.Но когда я установил точку останова сразу после соответствующего кода и запустился с включенной отладкой, все, что я увидел в отладчике, это в сводке:

{(int)[$VAR count]} key/value pairs

и расширение элемента никогда не достигнет какого-либо ключа или значения.

Но когда я распечатываю словарь "change" через NSLog, я получаю ключ и значение:

[timestamp] appName[3643:707]  observeValueForKeyPath new filePath change: {
kind = 1;
new = foo;

Я думаю, у меня есть два вопроса:

  1. Есть ли способ получить ключи и значения словаря с помощью отладчика XCode?
  2. Есть ли набор практических правил для использования отладчика и печати сообщений журнала?

Я (все еще) использую Xcode 3.2.6.

Спасибо!

РЕДАКТИРОВАТЬ: я понимаю, что "foo" не является допустимым путем к файлу.На данный момент я все еще тестирую отправку значения через KVO.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2011
  1. Установите точку останова на месте, где вы хотите проверить значение переменной, и запустите ваше приложение. Когда точка останова сработает, наведите курсор мыши на переменную в отладчике. Должно появиться небольшое всплывающее окно, наведите курсор мыши на стрелки слева и появится другое меню. Нажмите «Описание печати», и оно должно отобразить что-то похожее на журнал в консоли. enter image description here

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

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

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

0 голосов
/ 03 апреля 2011

Вы можете использовать будущий набор, который определенно работает в Xcode4 Когда вы устанавливаете точку останова, где есть возможность не останавливать выполнение программы и записывать в журнал что угодно. Я не уверен, что это хорошо работает в XCode 3 BCS Я знаком с 4, но вот работа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...