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

голоса
83

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

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

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

Задан 22/09/2008 в 02:45
источник пользователем
На других языках...                            


6 ответов

голоса
134

В окне 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 с другими сложными объектами.

Ответил 22/09/2008 в 02:51
источник пользователем

голоса
30

Вы можете щелкнуть правой кнопкой мыши на любой объект (ObjC или ядро Foundation) переменной и выберите «Печать Описание к консоли» (также в RUN-> Переменные). Это выводит результат в obejct в -debugDescriptionметод, который по умолчанию вызовов -description. К сожалению, NSDictionaryпереопределяет это производить кучу внутренних данных , которые вы обычно не заботитесь о том , так и в решении этого конкретного случая craigb является лучше.

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

- (NSString *) описание
{
    вернуться [NSString stringWithFormat: @ "<% @% р> {Foo:% @}", [само класс], я, [само Foo]];
}
Ответил 22/09/2008 в 10:55
источник пользователем

голоса
5

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

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

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

{
  bar = foo;
  buz = fiz;
}
Ответил 14/06/2012 в 10:07
источник пользователем

голоса
3

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

Ответил 19/04/2013 в 23:06
источник пользователем

голоса
1

Нажмите на вашем Словаре, затем нажмите на маленький значок «я», он должен сделать работу :-) Xcode5, просмотреть значение Dict

Ответил 26/11/2013 в 05:48
источник пользователем

голоса
0

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

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

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

Ответил 19/12/2012 в 14:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more