1、description方法的默认实现是返回这样的格式:
<类名: 对象的内存地址>,因此上面代码的输出结果为:
2014-03-19 21:46:49.896 构造方法[492:303] <Student: 0x100109910>
Student是类名,0x100109910是对象的内存地址。
* 注意了,%@只能用于输出OC对象,不能输出结构体等其他类型
* 有Java开发经验的人应该能感受到OC中的description 方法就是Java中的toString方法
* 修改NSLog和%@的默认输出:重写类对象或者实例对象的description方法即可。因为NSLog函数进行打印的时候会自动调用description方法。
2.重写description方法
description方法的默认实现是返回类名和对象的内存地址,这样的话,使用NSLog输出OC对象,意义就不是很大,因为我们并不关心对象的内存地址,比较关心的是对象内部的一些成变量的值。因此,会经常重写description方法,覆盖description方法的默认实现。比如,重写Student的description方法,返回成员变量_age的值
- (NSString *)description {
return [NSString stringWithFormat:@"age=%i",_age];
}