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

objective-c – 在Xcode中调试时的智能Obj-C变量内容?,第1张

概述在默认(即我的)配置中, Xcode在其变量调试器窗口中有点无用,特别是那些常见的Objective-C集合. 调试器似乎通常希望在展开某个对象时显示底层的Obj-C结构,所以我正在查看isas和类层次结构. 但是我在这里几乎总是想要的是对象本身具有语义意义的东西.例如.对于NSDictionary,我理想地想要查看键/值列表.如果这些键和值是,例如NSStrings,我只想查看字符串值,而不是 在默认(即我的)配置中,Xcode在其变量的调试器窗口中有点无用,特别是那些常见的Objective-C集合.

调试器似乎通常希望在展开某个对象时显示底层的Obj-C结构,所以我正在查看isas和类层次结构.

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

我最近花了一些时间在Eclipse上调试Java,并且由于它的所有缺点,Eclipse知道所有Java集合,并且在字符串或集合的内容中有一个简单的单行转储,或者当你在调试器中找到它时.

有没有办法在Xcode中获得这个?我错过了一些明显的东西,还是应该潜入显示模板系统?我知道那里有一些支持,因为NSArrays似乎得到一种特殊的列表格式,NSDictionarIEs获得“2键/值对”摘要等.

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

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

解决方法 在Xcode 6中,这个功能似乎已经实现了?在2010年提出这个问题时,我无法谈论Xcode的功能.

代码中的Nsstring,NSNumber,NSArray和NSDictionary值,带有断点:

断点断开时,您可以在Xcode“变量视图”中看到值.对于集合,您可能需要展开详细信息箭头:

如果右键单击变量并选择“打印variable_name的变量”,则对象的-deBUGDescription / -description值将打印到控制台.这对于更复杂的集合通常很有用,并且可能对于长Nsstring值等有用.

总结

以上是内存溢出为你收集整理的objective-c – 在Xcode中调试时的智能Obj-C变量内容?全部内容,希望文章能够帮你解决objective-c – 在Xcode中调试时的智能Obj-C变量内容?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1060415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存