ios – 在调试时查看Xcode中的对象/属性状态

所以我是 Xcode的新手,在iOS项目上工作,我在最基础的调试中度过了一段时间.具体来说,当我逐步执行代码时,我需要能够查看对象的状态(这不是疯了吗?),但我不能为我的生活找出如何在Xcode中执行此操作.

每当我尝试时,似乎我得到的最远的是一个无法扩展以显示其客观内容的内存地址.我也无法找出任何方法甚至手动取消引用调试控制台中的指针来查看该对象的状态.

在这里,我试图查看store.storeHours数组的内容,没有任何运气.事实上,左边的视图告诉我数组中有0个对象,当我尝试扩展它时不会显示任何内容,但是当我po store.storeHours时,控制台显示7个对象,尽管无用地描绘为内存地址.

请告诉我,我不是疯了,我只是错过了一些东西!

更新:事情变得更加怪异!当我突然将变量显示切换为“Local”而不是“Auto”时,self.store.storeHours变得完全可导航!我想知道是否有一个小故障访问正确的“storeHours”实例或其他东西,因为当我现在查看它时,它清楚地识别数组中的7个对象!更不用说这些物体是可扩展的,正如我原本希望的那样.

解决方法

实例实际上是自己提供这些信息.您需要为自定义类实现继承自NSObject的 description方法,以便它们能够将自己打印为除内存地址之外的其他内容(这是NSObject的实现所做的).

我不知道您的Hours课程有哪些属性,但这很简单:

- (NSString *)description
{
    return [NSString stringWithFormat:@"Open: %i Close: %i",self.openTime,self.closeTime];
}

该方法只需返回一个NSString,其中包含您认为在检查对象时看到的重要信息.

当您在NSLog()中使用%@格式说明符时,这也是类表示自己的方式.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...