如何在Xcodedebugging器中查看NSDictionaryvariables的内容?

有没有办法通过Xcodedebugging器查看NSDictionaryvariables的键/值对? 以下是在variables窗口中完全展开的信息的范围:

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

我期待它显示字典的每个元素(类似于数组variables)。

在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)variables,然后select“Print Description to Console”(也在Run-> Variables View中)。 这将打印结果obejct的-debugDescription方法,默​​认情况下调用-description 。 不幸的是, NSDictionary覆盖了这个来产生一堆你通常不关心的内部数据,所以在这个特定情况下,craigb的解决scheme更好。

显示的键和值也使用-description ,所以如果你想要在集合和其他地方的对象有用的信息,覆盖 – 描述是必须的。 我通常沿着这些行来实现它,以匹配默认的NSObject实现的格式:

  - (NSString *)说明
 {
     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添加了以下function,可能对您有所帮助

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

现在,您可以检查这些对象types,而无需在控制台中打印整个对象。 请享用!

资料来源: http : //developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_6.html

你也可以使用NSLog 。

你也可以进入debugging区或xcode,然后findAll Variables, Registers, Globals and Statics然后select你的variables。 右键点击它。 然后selectPrint description of "...."

希望能帮助到你!

点击你的字典,然后点击小“我”图标,它应该做的工作:-) Xcode5,查看字典的值