A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 该有个目标了 中级黑马   /  2014-8-25 22:54  /  941 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基 础 知 识 ( 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 就代表着取出 指针变量自己的地址。而不是他所指向的地址

3 个回复

正序浏览
总结的不错,希望楼主继续坚持
回复 使用道具 举报
一起学习,加油!
回复 使用道具 举报
不错啊!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马