iOS description方法的使用介绍

在输出字符串、一些基本数据类型以及 OC 对象,我们都可以使用 NSLog 函数进行输出。本次主要谈谈使用NSLog输出 OC 对象的应用。

       一般情况下,我们在使用NSLog 和 %@ 输出某个对象时,就会调用这个对象的 description 方法,它的返回值就是 NSString 字符串类型,所以 description 默认实现返回的格式是 <类名: 对象的内存地址>,如图:



以上输出实现的具体步骤为:
1.调用对象p的-description方法
2.拿到-description方法的返回值(NSString*)显示到屏幕上
3.-description方法默认返回的是“类名+内存地址”


那么,既然description方法的默认实现是返回类名和对象的内存地址,所以在必要情况下,我们需要重写description方法以达到改变输出结果目的,覆盖description方法的默认实现,比如重写上述代码 Person 类的 description方法,返回_age和_name成员变量的值:



重写完description方法后,再调用NSLog(@”%@”,p)时输出结果不再是<类名: 内存地址>,而是返回的字符串:



另外一个重点:千万不要在 description 方法中同时使用 %@ 和 self,如果这样使用了,那么最终会造成程序死循环,原因是因为:如果使用了%@和self,代表要调用self的description方法,最终就是循环调用description方法,所以以下是错误的写法,不可取:




转载自:http://blog.csdn.net/yuner1029/article/details/50933945
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值