我们在使用NSLog 和 %@输出某个对象时,就会调用这个对象的 description 方法,它的返回值就是 NSString 字符串类型,所以 description默认实现返回的格式是 <类名:对象的内存地址>例如:<partner : 0x7facbe12070>
不要在 description方法中同时使用 %@ 和 self,如果这样使用了,那么最终会造成程序死循环,原因是因为:如果使用了%@和self,代表要调用self的description方法,最终就是循环调用description方法。在必要情况下,我们需要重写description方法以达到改变输出结果目的,覆盖description方法的默认实现,重写完description方法后,再调用NSLog(@”%@”,p)时输出结果不再是<类名:内存地址>,而是返回的字符串:
- (NSString *)description {
NSMutableString * discription = [NSMutableStringstring];
if (self.partner) {
[discription appendFormat:@"partner=/"%@/"",self.partner];
}
return discription;
}
partner = xiaoxiao
新闻热点
疑难解答