我們在使用NSLog 和 %@ 輸出某個對象時,就會調用這個對象的 description 方法,它的返回值就是 NSString 字符串類型,所以 description 默認實現返回的格式是 <類名: 對象的內存地址>例如:<partner : 0x7facbe12070>
不要在 description 方法中同時使用 %@ 和 self,如果這樣使用了,那麼最終會造成程序死循環,原因是因爲:如果使用了%@和self,代表要調用self的description方法,最終就是循環調用description方法。在必要情況下,我們需要重寫description方法以達到改變輸出結果目的,覆蓋description方法的默認實現,重寫完description方法後,再調用NSLog(@”%@”,p)時輸出結果不再是<類名: 內存地址>,而是返回的字符串:
- (NSString *)description {
NSMutableString * discription = [NSMutableString string];
if (self.partner) {
[discription appendFormat:@"partner=\"%@\"", self.partner];
}
return discription;
}
partner = xiaoxiao