OC之description
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相关推荐
- oc中写c语言的方法,OC语言description步骤和sel
OC语言description方法和sel OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) ( ...
- OC中description、 SEL、类本质、self和super用法
一:description方法 description有对象方法和类方法两种,(是NSObject类的方法) 1,-description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的 ...
- iOS--开发从入门到精通
前言: 从事iOS开发已有几个年头,平时对于iOS开发的知识积累都比较碎片化,为了更好的掌握开发技能, 索性整理iOS开发的知识体系,以便于后面进阶成iOS高级开发工程师. 一.iOS开发基础 开发设 ...
- 文顶顶iOS开发博客链接整理及部分项目源代码下载
网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课 ...
- Android iOS 开发全面对比分析
1 前言 Android和iOS是移动端的两大平台,Android以它的开源.易上手.开发成本低而受到广大开发者的青睐,而iOS作为苹果的封闭系统,以它的简单.流畅高效.高冷等特点也吸引了一大批果粉开 ...
- IOS中的swift和oc关于对象模型的description方法重写
IOS中的swift和oc关于对象模型的description方法重写 先讲OC的,oc比较重要,放在最前面. 首先创建一个cocoa Touch Class,继承NSObject, 命名Person ...
- description方法 oc 就是NSLog使用
description方法 oc 就是NSLog使用 使用场景: 父类的-description默认是调用返回的是"类名+内存地址:" 我们需要重写这个方法: NSLog输出C语言 ...
- 黑马程序员——OC基础---核心语法(id,构造方法,Category,description,SEL)
------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...
- 「OC」类的深入研究、description方法和sel
一.类的深入研究 (一)类的本质 类本身也是一个对象,是class类型的对象,简称"类对象". Class类型的定义: Typedef struct obj class *clas ...
最新文章
- C++ 中NULL 和 nullptr 的区别
- 适配器模式(三种)简单使用
- border三角形阴影(不规则图形阴影)和多重边框的制作
- 米奇emoji_一些常用的 Emoji 符号(可直接复制)
- Linux下文件属性详解
- 4月9日京东考试感想
- 双系统linux哪种好,双系统安装实战,这个Linux系统超级简单
- 可能是最全的:虚拟机使用失败解决方案汇总
- 突发!字节跳动AI Lab总监李磊离职!加盟美国高校,曾为百度少帅科学家,交大ACM班成员...
- Ubuntu高分屏下Matlab工具栏字体过小
- 【Windows网络调试笔记】如何打开Windows(Win10为例)的telnet客户端?
- Struts1、Struts2及SpringMVC对比
- 转行软件测试3年了,听前辈说测试前途是IT里最low的,我慌了......
- 论文阅读:SUPER: A Novel Lane Detection System
- python只会基础能做什么?---你可以做一个文字游戏!
- 二分图(三)——KM算法
- 磁盘的FAT,NTFS,exFAT等格式
- 【报告分享】流量聚拢营销下沉-TalkingData(附下载)
- 解决OBS同时录制电脑音频和人声时出现的声音不同步问题
- 鸿蒙服务国内市场,华为鸿蒙正式挑战iOS和安卓,首先要在中国市场站稳脚跟