基 础 知 识 ( description )
- description 是对象方法, 只有在打印对象的对象方法的时候使用。
Person * p = [[Person alloc] init];
p.age = 20;
p.name = @"jack"
NSLog(@"%@",p);
默认情况下,利用NSLog 和@ 输出对象时 ,打印出的结果是 <类名 内存地址>
因为:
1,会先调用对象p的 - description 方法
2,拿到 - description 方法的返回值 (NSString *)类型 显示到屏幕上
3,- description 方法默认返回的是 <类名 内存地址>
所以:重写-description 方法,后就会覆盖掉原来的内容 ,显示你所输入的内容的属性。
- NSString* descirption
{
return = NSString stringWithFormat : @"age =%d ,name =%d",_age, _name;
}
注意:不要再 -description中尝试输入self,可引发死循环。
+description:
1,当你尝试输入一个类的时候,它会优先去调用这个类的+descirption方法。
2,拿到+description的返回值(NSString *) 显示到屏幕上。
3,+description默认返回 类名。
int main()
{
class c = [person class];
NSLog(@"%@",c);
}
结论: _descirption 决定了实例对象(成员变量)的输出结果。
+descriptio决定了类对象的输出结果。
补充:
Person *p = [[Person alloc] init];
NSLog(@"%p",p); 打印p 内存地址。
如果给p 加上& 。&p 就代表着取出 指针变量自己的地址。而不是他所指向的地址。