Und*_*ion 115 objective-c nslog
我正在覆盖对象的描述方法.我需要知道如何打印对象的内存地址来替换下面代码中的{???}:
-(NSString *) description {
return [NSString stringWithFormat:@"<SomeClass: %@>\nparmeterOne: %@\nparameterTwo: %@",
{???}, self.parameterOne, self.paramterTwo];
}
Run Code Online (Sandbox Code Playgroud)
我希望它在控制台中打印如下:
<SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages
Run Code Online (Sandbox Code Playgroud)
Vla*_*mir 210
要打印地址使用%p格式说明符和自指针:
-(NSString *) description {
return [NSString stringWithFormat:@"<SomeClass: %p>\nparmeterOne: %@\nparameterTwo: %@",
self, self.parameterOne, self.paramterTwo];
}
Run Code Online (Sandbox Code Playgroud)
- (NSString *)description
{
return [NSString stringWithFormat:@"%@ Area: %@, %@", [super description], self.identifier, self.name];
}
Run Code Online (Sandbox Code Playgroud)
所以在这个模型对象是NSObject的子类的情况下,你可以躲避额外的工作和记忆%p.
- (NSString *)description
{
return [NSString stringWithFormat:@"<%@: %p> Area: %@, %@", NSStringFromClass([self class]), self, self.identifier, self.name];
}
Run Code Online (Sandbox Code Playgroud)
因此,对于一个对象模型,在该对象模型中,您有一个从该类派生的具体实现者,您将显示正确的类名.