2019独角兽企业重金招聘Python工程师标准>>>

打印对象用%@,比如打印字符串对象:

NSString *name = @”haha”;

NSLog(@”%@”,name);

输出结果为:haha

比如:

Person *p = [[Person alloc]init];

p.age = 20;

p.name = @”jack”;

NSLog(@”%@”,p);

会打印出对象p的所属类和内存地址。比如:<Person 0x100109e60>

默认情况下,除字符串对象外,使用NSLog和%@打印对象的结果都是<类名 对象所在内存地址>。使用NSLog和%@打印对象的步骤如下:

1.调用对象p的-description方法

2.拿到-description方法的返回值(NSString*)显示到屏幕上

3.-description方法默认返回的是“类名+内存地址”

在必要情况下,我们需要重写description方法以达到改变输出结果目的,比如上述代码,_age和_name为成员变量,现在我们改写description方法:

@implementationPerson

—   (NSString *)description

{

return [NSString stringWithFormat:@”age= %d,name =%@”,_age,_name];

}

@end

之后再调用NSLog(@”%@”,p)时输出结果不再是<Person 0x100109e60>,而是age = 20,name =jack

注意,上面重写的是“-”开头的description,还有一个以“+”开头的description,“+”开头的description决定的是类对象的输出结果,“-”开头的description决定的是实例对象的输出结果。

Class c = [Person class];

// 1.会调用类的+description方法

// 2.拿到+description方法的返回值(NSString *)显示到屏幕上

NSLog(@"%@", c);

输出结果为:Person

当然也可以像重写“-”开头的description一样去重写它。

【备注】类也是对象,任何类都是Class的对象,获得类对象(和类对象不是同一个概念)的方法为Class c = [Person class];

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/u/2448717/blog/499546

OC之description相关推荐

  1. oc中写c语言的方法,OC语言description步骤和sel

    OC语言description方法和sel OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) ( ...

  2. OC中description、 SEL、类本质、self和super用法

    一:description方法 description有对象方法和类方法两种,(是NSObject类的方法) 1,-description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的 ...

  3. iOS--开发从入门到精通

    前言: 从事iOS开发已有几个年头,平时对于iOS开发的知识积累都比较碎片化,为了更好的掌握开发技能, 索性整理iOS开发的知识体系,以便于后面进阶成iOS高级开发工程师. 一.iOS开发基础 开发设 ...

  4. 文顶顶iOS开发博客链接整理及部分项目源代码下载

    网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课 ...

  5. Android iOS 开发全面对比分析

    1 前言 Android和iOS是移动端的两大平台,Android以它的开源.易上手.开发成本低而受到广大开发者的青睐,而iOS作为苹果的封闭系统,以它的简单.流畅高效.高冷等特点也吸引了一大批果粉开 ...

  6. IOS中的swift和oc关于对象模型的description方法重写

    IOS中的swift和oc关于对象模型的description方法重写 先讲OC的,oc比较重要,放在最前面. 首先创建一个cocoa Touch Class,继承NSObject, 命名Person ...

  7. description方法 oc 就是NSLog使用

    description方法 oc 就是NSLog使用 使用场景: 父类的-description默认是调用返回的是"类名+内存地址:" 我们需要重写这个方法: NSLog输出C语言 ...

  8. 黑马程序员——OC基础---核心语法(id,构造方法,Category,description,SEL)

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  9. 「OC」类的深入研究、description方法和sel

    一.类的深入研究 (一)类的本质 类本身也是一个对象,是class类型的对象,简称"类对象". Class类型的定义: Typedef struct obj class *clas ...

最新文章

  1. C++ 中NULL 和 nullptr 的区别
  2. 适配器模式(三种)简单使用
  3. border三角形阴影(不规则图形阴影)和多重边框的制作
  4. 米奇emoji_一些常用的 Emoji 符号(可直接复制)
  5. Linux下文件属性详解
  6. 4月9日京东考试感想
  7. 双系统linux哪种好,双系统安装实战,这个Linux系统超级简单
  8. 可能是最全的:虚拟机使用失败解决方案汇总
  9. 突发!字节跳动AI Lab总监李磊离职!加盟美国高校,曾为百度少帅科学家,交大ACM班成员...
  10. Ubuntu高分屏下Matlab工具栏字体过小
  11. 【Windows网络调试笔记】如何打开Windows(Win10为例)的telnet客户端?
  12. Struts1、Struts2及SpringMVC对比
  13. 转行软件测试3年了,听前辈说测试前途是IT里最low的,我慌了......
  14. 论文阅读:SUPER: A Novel Lane Detection System
  15. python只会基础能做什么?---你可以做一个文字游戏!
  16. 二分图(三)——KM算法
  17. 磁盘的FAT,NTFS,exFAT等格式
  18. 【报告分享】流量聚拢营销下沉-TalkingData(附下载)
  19. 解决OBS同时录制电脑音频和人声时出现的声音不同步问题
  20. 鸿蒙服务国内市场,华为鸿蒙正式挑战iOS和安卓,首先要在中国市场站稳脚跟

热门文章

  1. UVa1422 Processor
  2. 搭建NFS共享目录,解决wordpress负载均衡图片上传问题
  3. Android实现按钮点击效果(第一次点击变色,第二次恢复)
  4. Python自动化运维之15、网络编程之socket、socketserver、select、twisted
  5. 几款开源图像处理软件评测研究
  6. HDU2099 整除的尾数【模除】
  7. 对Repository模式误用的反思和纠正
  8. 五一小长假|不得不说的一些话
  9. 微服务设计模式(上)
  10. Dubbo消费者服务的订阅