我正在重写一个对象的描述方法。我需要知道如何打印该对象的内存地址,以替换下面代码中的{???}:
我正在重写一个对象的描述方法。我需要知道如何打印该对象的内存地址,以替换下面代码中的{???}:
-(NSString *) description {
return [NSString stringWithFormat:@"<SomeClass: %@>\nparmeterOne: %@\nparameterTwo: %@",
{???}, self.parameterOne, self.paramterTwo];
}
我希望它在控制台中打印出以下内容:
<SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages
[NSString stringWithFormat:@"%@ parameterOne:...", [super description], ...];
— 地址最终会被包含在其中是因为NSObject
有它,但你也不会丢弃任何你认为与调试相关的超类信息。 - Tommyvoid *
的指针,你需要将self
强制转换回void *
,否则会发生未定义行为。 - user529758void *
和id
在内部几乎是相同的,在这种情况下,无论是否将其转换为void *
,没有任何区别。 - Michael