我有一个对象我正在使用一些遗留方法初始化,并且在调试器中看起来很奇怪。具体来说,我明白了:
(Foo *) class name = 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;
}
对象似乎很好看。发生了什么事?
答案 0 :(得分:0)
调试器调用description方法来打印其日志。我会检查是否在违规类中覆盖了该方法。 e.g。
- (NSString *)description
{
return [NSString stringWithFormat:@"test class description"];
}
如果我在调试器中PO这个类的实例,它会吐出“测试类描述”而不是内存地址