Как просмотреть содержимое переменной NSDictionary в отладчике Xcode?

Есть ли способ просмотреть пары ключ / значение переменной NSDictionary через отладчик Xcode? Вот степень информации, когда она полностью раскрывается в окне переменных:

Variable  Value      Summary
jsonDict  0x45c540   4 key/value pairs
 NSObject {...}
  isa     0xa06e0720

Я ожидал, что он покажет мне каждый элемент словаря (аналогично переменной массива).

Ответы на вопрос(6)

Вы можете щелкнуть правой кнопкой мыши любую переменную объекта (ObjC или Core Foundation) и выбрать & # x201C; Распечатать описание в консоль & # x201D; & # xA0; (также в Run-> Просмотр переменных). Это распечатывает результат с объекта-debugDescription метод, который по умолчанию вызывает-description, К несчастью,NSDictionary переопределяет это для получения набора внутренних данных, которые вам обычно не нужны, поэтому в данном конкретном случае решение craigb лучше.

Отображаемые ключи и значения также используют-description, так что если вы хотите получить полезную информацию о ваших объектах в коллекциях и в других местах, переопределение-description является обязательным. Я обычно реализую это в соответствии с этим, чтобы соответствовать формату по умолчаниюNSObject реализация:

-(NSString *) description
{
    return [NSString stringWithFormat:@"<%@ %p>{foo: %@}", [self class], self, [self foo]];
}

XCode 4.6 добавил следующие функциональные возможности, которые могут быть вам полезны

The elements of NSArray and NSDictionary objects can now be inspected in the Xcode debugger

Теперь вы можете проверять эти типы объектов, не печатая весь объект в консоли. Наслаждайтесь!

Источник:http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_6.html

 26 февр. 2014 г., 23:21
Это глючит для меня - показывает только часть моего NSDictionary

Вы также можете использоватьNSLog.

Также вы можете пойти в области отладки или Xcode, а затем узнатьAll Variables, Registers, Globals and Statics затем выберите вашу переменную. Щелкните правой кнопкой мыши по нему. Затем выберитеPrint description of &quo,t;...."

Надеюсь, поможет!

Вы можете использовать CFShow ()

NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];
CFShow(dict);

В выходной вы увидите

{
  bar = foo;
  buz = fiz;
}
Решение Вопроса

В окне GDB вы можете использоватьpo осмотреть объект.

дано:

NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"foo" forKey:@"bar"];
[dict setObject:@"fiz" forKey:@"buz"];

установив точку останова после добавления объектов, вы можете проверить, что находится в словаре

(gdb) po dict
{
  bar = foo;
  buz = fiz;
}

Конечно этоNSString объекты, которые хорошо печатаются. YMMV с другими сложными объектами.

 16 нояб. 2010 г., 20:31
po - псевдоним для print-объекта
 09 июл. 2009 г., 16:13
ХОРОШО! Таким образом, GDB на самом деле является подсказкой в консоли, где вы можете вводить команды. Набрав & quot; po имя_объекта & quot; Вы получили содержимое объекта, напечатанное в консоли.
 09 июл. 2009 г., 16:11
Итак, я обнаружил, что GDB означает отладчик GNU и фактически является окном отладчика Xcode. Теперь мне нужно найти то, что по
 24 июн. 2010 г., 09:13
уже довольно поздно, но вы замечательный человек.
 09 июл. 2009 г., 16:08
Привет! Что такое GDB? Что такое по? Не уверен, что понимаю ... Спасибо за вашу помощь! :)

Нажмите на ваш диктовку, затем нажмите на маленький & quot; я & quot; значок, он должен делать работу :-) Xcode5, view the value of a dict

Ваш ответ на вопрос