NSLog输出函数和description----总结

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];

 }

原文地址:https://www.cnblogs.com/zbw-fly/p/3627238.html