如何在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 "...."
希望能帮助到你!
点击你的字典,然后点击小“我”图标,它应该做的工作:-)