2009-10-18 86 views
6

我有一个类,我想设置什么打印时,我打电话与该类的NSLog。例如,NSLog和一个对象的打印

NSLog(@“%@”,nonstandardObject);

如何设置对象以便打印出我想要的内容?

回答

14

覆盖-description方法。它不需要任何参数,并返回NSStringprintf'd。

还有另一种叫做-debugDescription的变体(返回NSString,没有参数),用于从gdb中播放对象时使用。

+2

当从NSObject以外的类继承时,值得考虑的是在输出子类的iVars结果之前,先调用'[super description]''。 – Abizern 2009-10-18 13:22:47

+0

@Abizern - 只有当你计划使用'super'给你的字符串。是否有另一个你想要超级描述的原因? – 2009-10-19 01:44:30

+0

@Dave。确实,让超级处理它自己的描述,并且你的类可以处理任何添加的iVar的输出。就像我说的;这是需要考虑的事情。 – Abizern 2009-10-19 16:43:48