- %p 打印的是指针变量的值.
%@ 打印的是指针指向的对象.
如果我们使用%@打印1个对象
- 输出的格式: <对象所属的类名:对象的地址>
原理:
当我们使用%@打印1个对象的时候, NSLog函数的底层实现.
调用传入的对象的 description方法.
拿到这个方法的返回值 这个返回值是1个字符串.
. 将这个字符串输出.
description方法是定义在NSObject类之中的.
所以每1个OC对象都有这个方法.
这个方法在NSObject类中的实现是这样的:
- 返回的字符串格式 @”<对象所属的类名:对象的地址>”
什么时候需要重写description方法呢?
- 如果你希望使用%@打印1个对象的时候 你希望这个对象打印的个数是我们自定义的.
- 那么就可以重写这个方法.
- (NSString *)description
{
return [NSString stringWithFormat:@"姓名:%@ 年龄%d",_name,_age];
}

本文深入探讨了Objective-C中%@和%p的区别,解释了%@打印对象时输出格式的由来,并详细说明了如何通过重写description方法来自定义对象的打印输出,以增强代码的可读性和实用性。
4849

被折叠的 条评论
为什么被折叠?



