Есть ли способ просмотреть пары ключ / значение переменной NSDictionary через отладчик Xcode? Вот объем информации, когда он полностью развернут в окне переменных:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
Я ожидал, что он покажет мне каждый элемент словаря (аналогично переменной массива).
objective-c
cocoa
xcode
debugging
Дара Конг
источник
источник
Вы можете щелкнуть правой кнопкой мыши любую переменную объекта (ObjC или Core Foundation) и выбрать «Печатать описание в консоль» (также в Run-> Variables View). Результат будет напечатан
-debugDescription
методом объекта , который по умолчанию вызывает-description
. К сожалению, онNSDictionary
переопределяет это, чтобы создать кучу внутренних данных, которые вам обычно не нужны, поэтому в этом конкретном случае решение craigb лучше.Отображаемые ключи и значения также используются
-description
, поэтому, если вам нужна полезная информация о ваших объектах в коллекциях и в других местах, переопределение-description
является обязательным. Я обычно реализую это в следующих строках, чтобы соответствовать формату реализации по умолчаниюNSObject
:источник
Вы можете использовать CFShow ()
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; [dict setObject:@"foo" forKey:@"bar"]; [dict setObject:@"fiz" forKey:@"buz"]; CFShow(dict);
На выходе вы увидите
источник
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.
источник
Нажмите на свой dict, затем нажмите на маленький значок «i», он должен сработать :-)
источник
Если вы хотите напечатать их в действии точки останова в современном XCode (да, я на 10 лет позже исходного сообщения!), Используйте следующее выражение точки останова в действии «Сообщение журнала»:
@ myDictionary.description @
Ниже приведен снимок экрана моего действия точки останова, где событие переменной - это NSString, а переменная contextData - это NSDictionary, содержимое которого я регистрирую :
источник
Вы также можете использовать NSLog .
Также вы можете перейти в область отладки или xcode, затем узнать и
All Variables, Registers, Globals and Statics
выбрать свою переменную. Щелкните по нему правой кнопкой мыши. Затем выберитеPrint description of "...."
Надеюсь, это поможет!
источник