有没有办法查看key/value对NSDictionary可变通的模式,调试器?这里的范围的信息时,它是完全膨胀的变量窗口:

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

我期待它来告诉我每个元素的词典(类似于一系列变量)。

有帮助吗?

解决方案

在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或核心基金会)可变和选择"印介绍到控制台"(也在运行>的变量图)。这个打印的结果的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 /库/ MAC /#文档/ DeveloperTools /概念/ WhatsNewXcode /文章/ xcode_4_6.html

点击你的词典,然后点击小“i”。图标,它应该做的工作:-)

您也可以使用 NSLog

你也可以进入Debug区域或xcode,然后找出 All Variables,Registers,Globals and Statics 然后选择你的变量。右键单击它。然后选择打印描述“....”&quot;

希望它有所帮助!

如果你想在现代XCode中的断点动作中打印这些(是的,我在原始帖子后10年!)在“日志消息”中使用以下断点表达式。动作:

@ myDictionary.description @

下面是我的断点操作的屏幕截图,其中变量事件是NSString,变量contextData是我记录以下内容的NSDictionary:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top