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"];
}