Answers:
要打印地址,请使用%p
格式说明符和自指针:
-(NSString *) description {
return [NSString stringWithFormat:@"<SomeClass: %p>\nparmeterOne: %@\nparameterTwo: %@",
self, self.parameterOne, self.paramterTwo];
}
[NSString stringWithFormat:@"%@ parameterOne:...", [super description], ...];
-地址最终在那里,因为NSObject
有了它,但是您也不会丢弃任何您认为与您可能从其继承的超类中调试有关的东西。
void *
并且id
内部几乎相同,在这种情况下,无论是否将其强制转换都没有区别void *
。
- (NSString *)description
{
return [NSString stringWithFormat:@"%@ Area: %@, %@", [super description], self.identifier, self.name];
}
因此,如果该模型对象是NSObject的子类,则可以避免进行额外的工作和记住%p
。
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@: %p> Area: %@, %@", NSStringFromClass([self class]), self, self.identifier, self.name];
}
因此,在对象模型中有一个从此类派生的具体实现者的情况下,将显示正确的类名。