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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝鸟 中级黑马   /  2015-4-18 21:48  /  656 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #import <Foundation/Foundation.h>

  2. @interface Person : NSObject
  3. @property int age;
  4. @property NSString *name;

  5. @end
  6. #import "Person.h"

  7. @implementation Person
  8. //它决定了实例对象输出的结果
  9. - (NSString *)description
  10. {
  11.     ///NSLog(@"%@",self);//这个会引发死循环

  12.     //将_age,_name也输出屏幕上
  13.    return  [NSString stringWithFormat:@"age=%d name= %@", _age,_name];
  14.    
  15.     //return @"23434sfdf";
  16. }
  17. //它决定了类对象输出结果
  18. + (NSString *)description
  19. {
  20.     //NSlog(@"abc");
  21.     return @"abd";
  22. }

  23. @end
  24. #import <Foundation/Foundation.h>
  25. #import "Person.h"

  26. //-description方法,使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出
  27. //默认的打印是 《类名》+内存地址 ,但是字符串列外。
  28. int main(int argc, const char * argv[])
  29. {
  30.     NSLog(@"__LINE__");
  31.     //这个是输出当前行号。———FILE————输出文件路径。__func__输出函数。
  32.    
  33.     Person *c = [[Person alloc] init];
  34.     NSLog(@"%p",c);//&c这个取出自己的地址
  35.     return 0;
  36. }

  37. void test2()
  38. {
  39.     //使用NSLog和%@输出某个类对象时,会调用类对象+description方法,并拿到返回值进行输出
  40.    
  41.     Class c =[Person class];
  42.    
  43.      NSlog(@"%@",c);
  44. }

  45. //这个是-号开头的description 测试
  46. void test()
  47. {
  48.    
  49.     Person *p = [[Person alloc] init];
  50.     p.age = 20;
  51.     p.name = @"Jack";
  52.    
  53.     //会调用系统中的- description方法。拿到(NSString *)返回 类名+内存地址
  54.     NSLog(@"%@",p);
  55.    
  56.     //如果要输出10,或是更多的,那就用这种方法
  57.     NSString *name = @"rose";
  58.    
  59.     //%@可以打印一个对象,也可以打印字符串。
  60.     //NSLog(@"我的名字是YWF%@",name);

  61. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马