oc笔记<6>description方法与NSLog

来源:互联网 发布:网络信息安全自查报告 编辑:程序博客网 时间:2024/05/17 15:42

不足之处,望不吝赐教


description方法与NSLog

1.description属于NSObject自带方法; 

2.NSLog函数一旦发现用%@输出某个OC对象时,就会调用这个对象的description方法(这个方法返回值是NSString类型),并且将description方法返回的字符串代替%@的位置进行输出;

3.没有重写description时,默认返回<类名:对象的地址>;

4.%@ 只能输出oc对象或者字符串,不能输出结构体、共用体;

5.对象方法description方法的重写:

description方法模拟内部实现
-(NSString *)description{    NSString *des = [NSString stringWithFormat:@"<%@: %p>",isa,self];    return des;}

isa指针指向父类,还是自身,self指向自身地址,这样将打印出对象的地址。

经过重写,可以改变NSLog的打印内容,打印出对象的其他属性。但是应该注意的是,description方法的返回值一定要是NSString类型!如下:

NSString *des = [NSString stringWithFormat:@"name:%@ age:%d sex:%@",_name,_age,_sex];

6.类方法description

以上所说,皆为对象方法。其实description方法也有类方法。NSlog 一个类对象时, 会调用+ description,获取返回值,输出结果是类名。

7.  如果用-des打印self,会造成死循环。


0 0