今天在写一段代码时, 自定义了一个类, 并且修改了其description 显示,
修改如下:
- (NSString *)description {
NSLog(@"XXXX");
NSString *selfDes = [NSString stringWithFormat:@"self=%@, yourAge=%d", self,self.yourAge];
return selfDes;
}
运行时, 发现, 在使用NSLog这个自定义的UIView对象时, 发现程序 大量的调用[XX description];
后来,分析问题的原因,在于自定义description时,不能在里面还去调用self的转换成NSString的输出。因为在description中再去取self=%@,会使得里面又会调用自己的description方法。 所以形成了无效循环, 直到系统资源耗尽。
但是在description中,输入自己的其它对象,则是可以的。