OC中对象的description方法
2015-11-15 14:38
176 查看
周所周知,我们在做项目时, 可以在类的.m文件中重写该类的对象的描述description方法:
示例:
-(NSString *)description
{
NSString *str = [NSString stringWithFormat:@"name:%@ age:%d sex:%@",_name,_age,_sex];
return str;
}
注意: 重写description方法的陷阱
千万不要在description方法中同时使用%@和self,下面的写法是错误的:
- (NSString *)description {
return [NSString stringWithFormat:@"%@", self];
}
第2行同时使用了%@和self,代表要调用self的description方法,因为NSLog()函数在遇到%@ 占位符后会执行类中的description方法,因此最终会导致程序陷入死循环,循环调用description方法;
示例:
-(NSString *)description
{
NSString *str = [NSString stringWithFormat:@"name:%@ age:%d sex:%@",_name,_age,_sex];
return str;
}
注意: 重写description方法的陷阱
千万不要在description方法中同时使用%@和self,下面的写法是错误的:
- (NSString *)description {
return [NSString stringWithFormat:@"%@", self];
}
第2行同时使用了%@和self,代表要调用self的description方法,因为NSLog()函数在遇到%@ 占位符后会执行类中的description方法,因此最终会导致程序陷入死循环,循环调用description方法;
相关文章推荐
- hdu -4325-Flowers(离散化 线段树)
- MSMQ消息队列,一个按钮发送,一个按钮接受
- JAVASE---static关键字
- Matlab学习历程
- 从今天起,开启博客
- Linux常用命令
- UIbutton
- Java记录 -77- 增强的for循环与自动拆装箱
- Unity3D 有限状态机(一)
- Vi 命令总结
- HDU 4280 Island Transport
- 获得spring源码
- 切换到MarkDown编辑器
- 事务一致性简述
- ARC和MRC混用的解决方法
- 混合高斯模型GMM和EM算法
- Linux alien命令
- TS科普12 流id解析
- Android最佳实践(译)
- nyoj--203--三国志(迪杰斯特拉+背包)