Как просмотреть содержимое переменной NSDictionary в отладчике Xcode?
есть ли способ просмотреть пары ключ / значение переменной NSDictionary через отладчик Xcode? Вот объем информации, когда он полностью развернут в окне переменной:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
Я ожидал, что он покажет мне каждый элемент словаря (похожий на переменную массива).
6 ответов:
в окне 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 с другими сложными объектами.
вы можете щелкнуть правой кнопкой мыши любую переменную объекта (ObjC или Core Foundation) и выбрать "Print Description to Console" (также В представлении Run->Variables). Это печатает результат obejct в
-debugDescriptionметод, который по умолчанию называет-description. К сожалению,NSDictionaryпереопределяет это, чтобы создать кучу внутренних данных, о которых вы обычно не заботитесь, поэтому в этом конкретном случае решение craigb лучше.отображаемые клавиши и значения также используют
-description, Так что если вы хотите полезно информация о ваших объектах в коллекциях и в других местах, переопределение-descriptionявляется обязательным. Я обычно реализую его по этим линиям, чтобы соответствовать формату по умолчаниюNSObjectреализация:-(NSString *) description { return [NSString stringWithFormat:@"<%@ %p>{foo: %@}", [self class], self, [self foo]]; }
Вы можете использовать CFShow ()
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; [dict setObject:@"foo" forKey:@"bar"]; [dict setObject:@"fiz" forKey:@"buz"]; CFShow(dict);на выходе вы увидите
{ bar = foo; buz = fiz; }
XCode 4.6 добавил следующие функции, которые могут быть полезны для вас
вы можете проверить эти типы объектов без необходимости печатать весь объект в консоли. Наслаждайтесь!The elements of NSArray and NSDictionary objects can now be inspected in the Xcode debugger
вы также можете использовать NSLog.
Также вы можете пойти в область отладки или xcode, а затем узнать
All Variables, Registers, Globals and Staticsзатем выберите переменную. Щелкните правой кнопкой мыши на нем. Затем выберитеPrint description of "...."надеюсь, что это помогает!

Comments