• 语言基础之description方法


     

    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:  }
  • 相关阅读:
    《JavaScript高级程序设计》扩展关于动态原型
    “三角边”的那点事儿
    请允许我说:数学是如此美丽!
    球面模型分解及仿flash标签云
    关于Javascript模块化和命名空间管理
    我所了解的关于JavaScript定义类和对象的几种方式
    正因为我们是前端,所以代码更需要优雅
    “作弊”还是创意?伪3D
    mybatis常用jdbcType数据类型以及对应的JavaType
    mdx之计算成员和命名集
  • 原文地址:https://www.cnblogs.com/zeyang/p/4318925.html
Copyright © 2020-2023  润新知