2009-10-18 88 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