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



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



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


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

559   6  

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
вы можете проверить эти типы объектов без необходимости печатать весь объект в консоли. Наслаждайтесь!

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

нажмите на свой дикт, затем нажмите на маленький значок "i", он должен выполнить эту работу :-) Xcode5, view the value of a dict

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

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

надеюсь, что это помогает!

Comments

    Ничего не найдено.