gpt4 book ai didi

objective-c - 在 Xcode 中调试时智能 Obj-C 变量内容?

转载 作者:太空狗 更新时间:2023-10-30 03:32:38 25 4
gpt4 key购买 nike

在其默认(即我的)配置中,Xcode 在其变量调试器窗口中有些无用,尤其是那些常见的 Objective-C 集合变种。

当我展开某个对象时,调试器似乎通常想要显示底层的 Obj-C 结构,所以我正在查看 isa 和类层次结构。

但我在这里几乎总是想要的是对对象本身具有语义意义的东西。例如。对于 NSDictionary,我希望看到一个键/值列表。例如,如果这些键和值是 NSString,我只想查看字符串值,而不是复杂的嵌套对象。 NSSetNSArraysNSData 中的字节也是如此。和 NSString,虽然通常在 Summary 列中获得它们的字符串表示,但当它们很长时就不可能查看(例如,太长而无法放入该列的路径名似乎不会滚动)-- 当我双击它时,我得到的是显示模板字符串,所以我也不能选择/复制它。

我最近花了一些时间在 Eclipse 上调试 Java,尽管有它的所有缺点,Eclipse 知道所有 Java 集合,并且当你找到它时,它会从字符串或集合或任何内容的内容中进行简单的单行转储在调试器中。

有没有办法在 Xcode 中获取它?我是否遗漏了一些明显的东西,或者我应该深入研究显示模板系统?我知道那里有一些支持,因为 NSArrays 似乎有一种特殊的列表格式,NSDictionaries 有“2 个键/值对”摘要,等等。

编辑:可以放入 GDB 以获取有关对象的更多数据。令我沮丧的是,GDB 的 po 作用于 NSDictionary 提供了我期望从 GUI 调试器获得的那种非常有用的输出。这可以在不将上下文切换到控制台的情况下复制吗?

我非常喜欢 Xcode 环境,但我一直使用的对象几乎完全不透明,这确实阻碍了调试时间。谢谢。

最佳答案

是的,调试期间的 XCode 变量查找很弱,但它基于 gdb,您可以通过控制台控制它。在调试期间打开控制台并编写您需要的任何命令,以查看 NSDictionary* dic;内容就这么简单

po dic

po 打印 [obj description] 结果中显示的数据。您还可以调用任何方法,例如

po [dict valueForKey:@"myKey"], or p(NSRect) [[self view] frame]

你可以在gdb帮助中获得更多信息

关于objective-c - 在 Xcode 中调试时智能 Obj-C 变量内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3249108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com