所以我是 Xcode 的新手,正在处理一个 iOS 项目,我在最基本的调试方面遇到了很多麻烦。具体来说,我需要能够在逐步执行代码时查看对象的状态(这并不疯狂,是吗?),但我终究无法弄清楚如何在 Xcode 中执行此操作。
每当我尝试时,似乎我得到的最远的是一个无法扩展以显示其目标内容的内存地址。我也想不出任何方法来手动取消引用调试控制台中的指针以查看该对象的状态。
在这里,我试图查看 store.storeHours
数组的内容,但没有任何运气。事实上,左边的 View 告诉我数组中有 0 个对象,当我尝试展开它时不会显示任何内容,但是当我 po store.storeHours
时,控制台显示 7 个对象,尽管无用地描绘为内存地址。
请告诉我我没有疯,我只是错过了什么!
更新:所以事情变得更奇怪了!当我突然将变量显示切换为“本地”而不是“自动”时,self.store.storeHours
变得完全可导航!我想知道是否可能在访问正确的“storeHours”实例时出现故障或其他原因,因为当我现在查看它时它清楚地识别了数组中的 7 个对象!更不用说这些对象是可扩展的,正如我最初希望的那样。
最佳答案
这些实例实际上是在自己提供这些信息。您需要实现 description
方法,它是从 NSObject
继承的,用于您的自定义类,以便它们能够将自己打印为内存地址以外的其他内容(这是 NSObject
的实现)。
我不知道你的 Hours
类有什么属性,但这很简单:
- (NSString *)description
{
return [NSString stringWithFormat:@"Open: %i Close: %i", self.openTime, self.closeTime];
}
该方法只需要返回一个 NSString
,其中包含您认为在检查对象时需要查看的任何重要信息。
当您在 NSLog()
中使用 %@
格式说明符时,这也是类表示自身的方式。
关于ios - 调试时在 Xcode 中查看对象/属性状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15102082/