Geo*_*old 167 objective-c tostring nslog
是否有一种方法可以在我的自定义类中覆盖,以便何时
NSLog(@"%@", myObject)
Run Code Online (Sandbox Code Playgroud)
被称为,它将打印我的对象的字段(或任何我认为重要的)?我想我正在寻找Java的Objective-C等价物toString().
zak*_*rya 247
它是description实例方法,声明为:
- (NSString *)description
Run Code Online (Sandbox Code Playgroud)
这是一个示例实现(感谢grahamparks):
- (NSString *)description {
return [NSString stringWithFormat: @"Photo: Name=%@ Author=%@", name, author];
}
Run Code Online (Sandbox Code Playgroud)
gra*_*rks 35
将其添加到@implementationPhoto类中:
- (NSString *)description {
return [NSString stringWithFormat:@"Photo: Name=%@ Author=%@",name,author];
}
Run Code Online (Sandbox Code Playgroud)
tea*_*bot 24
您可以覆盖NSObject的描述方法:
- (NSString *)description
Run Code Online (Sandbox Code Playgroud)
关于日志记录的主题,我推荐这篇博文,以便更好地登录Objective-C.
Mad*_*ane 13
您可以使用两种功能.
- (NSString*)description
Run Code Online (Sandbox Code Playgroud)
当您将对象作为IE的参数时,将显示此参数NSLog.其他描述功能是:
- (NSString*)debugDescription
Run Code Online (Sandbox Code Playgroud)
po anInstanceOfYourClass在调试命令窗口中执行此操作时将调用此方法.如果你的类没有debugDescription函数,那么description就会被调用.
请注意,基类NSObject确实已description实现,但它相当简单:它只显示对象的地址.这就是为什么我建议您description在任何想要获取信息的类中实现,特别是如果您description在代码中使用该方法.如果您description在代码中使用,我建议您也实现debugDescription,也要debugDescription更详细.
| 归档时间: |
|
| 查看次数: |
54138 次 |
| 最近记录: |