Ios 为什么调试器会说;类名=…”;而不是内存位置?
我有一个正在使用一些遗留方法初始化的对象,调试器中的事情看起来很奇怪。具体而言,我看到:Ios 为什么调试器会说;类名=…”;而不是内存位置?,ios,objective-c,xcode,Ios,Objective C,Xcode,我有一个正在使用一些遗留方法初始化的对象,调试器中的事情看起来很奇怪。具体而言,我看到: (Foo*)类名=Foo 而不是 (Foo*)0xWhatever Foo对象由一个初始值设定项创建,该初始值设定项看起来很好: @implementation Foo - (instancetype)initWithLegacyFoo:(LegacyFoo *)legacyFoo { self = [super init]; if (self) { self.name =
(Foo*)类名=Foo
而不是
(Foo*)0xWhatever
Foo对象由一个初始值设定项创建,该初始值设定项看起来很好:
@implementation Foo
- (instancetype)initWithLegacyFoo:(LegacyFoo *)legacyFoo
{
self = [super init];
if (self) {
self.name = legacyFoo.name;
self.userId = legacyFoo.userId;
...
}
return self;
}
不过,这个对象似乎玩得不错。发生了什么事?调试器调用description方法来打印其日志。我将检查该方法是否在有问题的类中被重写。 e、 g
如果我在调试器中PO这个类的一个实例,它将抛出“testclass description”,而不是内存地址。调试器调用description方法来打印它的日志。我将检查该方法是否在有问题的类中被重写。 e、 g 如果我在调试器中PO这个类的一个实例,它将抛出“testclass description”,而不是内存地址
- (NSString *)description
{
return [NSString stringWithFormat:@"test class description"];
}