理解Xcode调试器变量显示

10
新手问题:有没有人可以指点我如何理解/解释在调试器变量面板中显示的内容?
例如:我将一个NSDictionary作为方法参数传递。我设置了断点,以便检查字典中的值。下面的图片(如果显示出来)显示了调试器中此变量的展开视图。它正确地报告了它包含3个名称/值对,但是当我展开所有部分时,我无法找到这些名称/值存储的位置。
我是否必须创建这些名称/值对的本地变量才能在需要检查时查看它们?我知道我可以使用NSLog或printf,但有时我只想快速查看一下。 字典变量在调试器中
2个回答

17

右键点击变量,点击“编辑摘要格式”,然后键入以下内容:

{(NSString*)[$VAR description]}:s
这将替换NSDictionary在GDB格式化程序中的输出方式,使用更耗费资源的description方法进行调用。也就是说,不再输出"x个key/value对",而是以-[NSDictionary description]方法生成的字典内容形式显示。
这与在控制台窗口中键入"po dictionary"相同。或者右键单击变量并选择“打印描述”。它们都调用对象的description方法。
如果你想尝试,可以在/Developer/Library/Xcode/CustomDataViews/Foundation.plist中找到此格式化程序,位于NSDictionary键下。替换的内容保存在/Users/USERNAME/Library/Developer/Xcode/UserData/Debugger/CustomDataFormatters中,并将持续存在,直到删除该文件。
NSDictionary实际上是一个类簇,很少有人知道其内部结构。在这一点上,你无法从调试器树中获得太多有用信息。

感谢 - 右键/打印说明对我来说已经足够了。 - spring
这个链接提供了更多的描述:http://disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/XcodeDebugging/220-Viewing_Variables_and_Memory/variables_and_memory.html - syvex

-1
这就是你要找的: 点击你的字典,然后点击小“i”图标 :-) Xcode5, view the value of a dict

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接