有没有一种方法可以通过Xcode调试器查看NSDictionary变量的键/值对?这是在变量窗口中完全展开时的信息范围:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
我希望它能向我显示字典的每个元素(类似于数组变量)。
Answers:
在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)变量,然后选择“打印描述到控制台”(也在Run-> Variables View中)。这将结果打印为obejct的-debugDescription
方法,默认情况下调用-description
。不幸的是,将其NSDictionary
覆盖会产生一堆您通常不关心的内部数据,因此在这种特定情况下,craigb的解决方案更好。
显示的键和值也使用-description
,因此,如果您想要有关集合中和其他位置上的对象的有用信息,-description
则必须重写。我通常按照以下方式实现它,以匹配默认NSObject
实现的格式:
-(NSString *)说明 { 返回[NSString stringWithFormat:@“ <%@%p> {foo:%@}”,[self class],self,[self foo]]; }
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