1.description方法的一般用处

   1:   // 指针变量的地址
   2:      NSLog(@"%p", &p);
   3:      // 对象的地址
   4:      NSLog(@"%p", p);
   5:      // <类名:对象地址>
   6:      NSLog(@"%@", p);
   1:  Class c = [Person class];
   2:      
   3:      // 1.会调用类的+description方法
   4:      // 2.拿到+description方法的返回值(NSString *)显示到屏幕上
   5:      NSLog(@"%@", c);

类似于Java的toString()

2、description方法的一般用处注意点

   1:  // 默认情况下,利用NSLog和%@输出对象时,结果是:<类名:内存地址>
   2:      
   3:      // 1.会调用对象p的-description方法
   4:      // 2.拿到-description方法的返回值(NSString *)显示到屏幕上
   5:      // 3.-description方法默认返回的是“类名+内存地址”
   6:      NSLog(@"%@", p);
   7:      
   8:      //Person *p2 = [[Person alloc] init];
   9:      //NSLog(@"%@", p2);
  10:      
  11:      //NSString *name = @"Rose";
  12:      
  13:      //NSLog(@"我的名字是%@", name);
  14:      
  15:      Person *p2 = [[Person alloc] init];
  16:      p2.age = 25;
  17:      p2.name = @"Jake";
  18:      
  19:      NSLog(@"%@", p2);

3、description方法的的用法

   1:  // 决定了实例对象的输出结果
   2:  //- (NSString *)description
   3:  //{
   4:  //    // 下面代码会引发死循环
   5:  //    // NSLog(@"%@", self);
   6:  //    return [NSString stringWithFormat:@"age=%d, name=%@", _age, _name];
   7:  //    //return @"3424324";
   8:  //}
   9:   
  10:  // 决定了类对象的输出结果
  11:  + (NSString *)description
  12:  {
  13:      return @"Abc";
  14:  }
05-11 18:31