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:  }

语言基础之description方法的更多相关文章

  1. C语言基础:两个变量交换值的方法

    学习任何语言基础时,两个数值得交换是必须掌握的,下面是3种不同的方式(c语言) 方法一:利用数学的计算技巧 #include <stdio.h> int main() { , b = ; ...

  2. OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法

    一. 分类-Category 1. 基本用途:Category  分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...

  3. 四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法

    四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 ...

  4. OC基础--description方法

    PS:经过之类重写description方法后,个人感觉有点像C#中的ToString();方法 一.description方法的作用:(输出所有的OC对象都用%@) 1.默认情况下(不重写descr ...

  5. [Objective-c 基础 - 2.10] description方法

    A. 实例对象打印-description 1.当使用NSLog函数并且使用%@占位符的时候,会调用对象的-description方法 2.拿到-description的返回值,显示到console中 ...

  6. 2008技术内幕:T-SQL语言基础

    2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLF ...

  7. (cljs/run-at (->JSVM :browser) "语言基础")

    前言  两年多前知道cljs的存在时十分兴奋,但因为工作中根本用不上,国内也没有专门的职位于是搁置了对其的探索.而近一两年来又刮起了函数式编程的风潮,恰逢有幸主理新项目的前端架构,于是引入Ramda. ...

  8. 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...

  9. 2008技术内幕:T-SQL语言基础 单表查询摘记

    这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLFundamentals2008 ,官网给出的连接是这 ...

随机推荐

  1. 在Maven中怎么配置外部Jar

    转摘自:http://liugang594.iteye.com/blog/1677712 假设我们有一个Maven的project,其中有些Jar包不是来自Maven库的,是存在本地的某些Jar文件, ...

  2. C# 序列化理解 1(转)

    序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制.其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方.    .NET框架提供了两种串行化的方式: ...

  3. hadoop之shuffle详解

    Shuffle描述着数据从map task输出到reduce task输入的这段过程. 如map 端的细节图,Shuffle在reduce端的过程也能用图上标明的三点来概括.当前reduce copy ...

  4. HASHMAP原理解析,不错的文章

    http://blog.csdn.net/vking_wang/article/details/14166593

  5. BZOJ 2095: [Poi2010]Bridges

    2095: [Poi2010]Bridges Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 869  Solved: 299[Submit][Stat ...

  6. POJ2495(棋盘分治,染色)

    Incomplete chess boards Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2483   Accepted ...

  7. The Clean Architecture--一篇很不错的关于架构的文章

    翻译水平有限,见谅! Uncle Bob 13 Aug 2012 Architecture Craftsmanship Over the last several years we’ve seen a ...

  8. Grunt环境搭建及使用 前端必备

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...

  9. thinkphp5最美跳转页面

    声明下:此教程来自TP官网,如果需要看原文,请点击一下链接   http://www.thinkphp.cn/code/3437.html 先给大家看下效果: 直接撸代码: 第一步:为了增加对移动设备 ...

  10. HDU 2044 一只小蜜蜂(递归)

    一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...