黑马程序员技术交流社区

标题: 学习总结 description [打印本页]

作者: 该有个目标了    时间: 2014-8-25 22:54
标题: 学习总结 description
基 础 知 识 ( description )- description 是对象方法, 只有在打印对象的对象方法的时候使用。
Person * p  = [[Person alloc] init];
p.age = 20;
p.name = @"jack"
NSLog(@"[url=]%@[/url]",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 就代表着取出 指针变量自己的地址。而不是他所指向的地址

作者: 粺¹³¼畅    时间: 2014-8-25 23:26
不错啊!!
作者: 庄得超    时间: 2014-8-26 09:04
一起学习,加油!
作者: zhuiyi007    时间: 2014-8-26 09:13
总结的不错,希望楼主继续坚持




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2