OC基础--description方法
PS:经过之类重写description方法后,个人感觉有点像C#中的ToString();方法
一、description方法的作用:(输出所有的OC对象都用%@)
1、默认情况下(不重写description方法时)对象的输出信息是:<类名: 地址名> 例:<Person: 0x7fedc9c09720>
2、NSLog(@"Person对象:%@",p);--原理:会调用对象的-description方法,并且把-description方法返回的OC字符串输出的屏幕上
请区分一下三者区别:
1)直接输出某个对象的地址:
Person *p = [Person new];
NSLog(@"%p",p);
2)输出指针变量的地址:NSLog(@"%p",&p);
3)直接输出整个对象:NSLog(@"%@",p);
默认输出是:<类名: 对象的内存地址>
改变默认输出的方式:重写-description方法,返回自己想输出的内容
二、代码实例:
#import <Foundation/Foundation.h> // Person的声明
@interface Person : NSObject
{
int _age;
} - (void) setAge:(int)age;
- (int) age; @end // Person的实现
@implementation Person - (void) setAge:(int)age
{
_age = age;
} - (int) age
{
return _age;
} //重写父类-description方法,利用NSString类的类方法stringWithFormat方法拼接字符串
//使得重写的-description方法返回自己想要的内容
- (NSString *) description
{
return [NSString stringWithFormat:@"age=%d", _age];
} @end int main()
{
Person *p = [Person new];
[p setAge:]; // 输出所有的OC对象都用%@
// 默认情况下对象的输出信息:<Person: 0x7fedc9c09720>
// 类名 + 对象的内存地址 // 给指针变量p所指向的对象发送一条-description消息
// 会调用对象的-description方法,并且把-description方法返回的OC字符串输出到屏幕上
NSLog(@"Person对象:%@", p);
/*
// 指针变量p的地址
NSLog(@"指针变量p的地址:%p", &p);
// 对象的地址
NSLog(@"这个Person对象的地址:%p", p);
*/
return ;
}
OC基础--description方法的更多相关文章
- OC基础之方法和参数的命名规范
以前学过C/C++/Java/C#语言的童鞋可能刚开始对于OC的方法和参数的命名规范大为不爽 举例来说,如下一个OC方法: - (void)tableView:(UITableView *)table ...
- 四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法
四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 ...
- OC 初识NSString,self关键字,继承,成员变量的可见性,description方法
OC 初识NSString,self关键字,继承,成员变量的可见性,description方法 初识 NSString: char * string = "旭宝爱吃鱼"; 常量字符 ...
- OC基础4:类和方法
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.类的声明(@interface)要放在 ...
- OC语法4——自定义构造方法,description方法
自定义构造方法: 我们已经知道创建对象分两步,1:在内存中开辟存储空间,并把地址存储在指针变量里,2:调用指针变量的初始化方法init初始化该对象. Student * stu = [Student ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
- [Objective-c 基础 - 2.10] description方法
A. 实例对象打印-description 1.当使用NSLog函数并且使用%@占位符的时候,会调用对象的-description方法 2.拿到-description的返回值,显示到console中 ...
- OC中对象的description方法
周所周知,我们在做项目时, 可以在类的.m文件中重写该类的对象的描述description方法: 示例: -(NSString *)description{ NSString *str = [N ...
- 语言基础之description方法
1.description方法的一般用处 1: // 指针变量的地址 2: NSLog(@"%p", &p); 3: // 对象的地址 4: NSLog(@"%p ...
随机推荐
- TestNG之执行测试类方式
TestNG提供了很多执行方式,下面做简单介绍. 1.XML指明测试类,按照类名执行,其中可以指定包名,也可指定无包名: 带包名,运行ParameterSample类和ParameterTest类 & ...
- UESTC 899 方老师和农场 --双连通分量的构造
首先将原图中的连通分量缩点,一定可以将原图缩成一棵树的形式,然后统计这棵树的叶子节点个数,答案就是(leaf+1)/2.这里不再证明,可以画个图看一下. (简单说明一下,首先把两个最近公共祖先最远的两 ...
- HDU 2669 Romantic【扩展欧几里德】
裸的扩展欧几里德,求最小的X,X=((X0%b)+b)%b,每个X都对应一个Y,代入原式求解可得 #include<stdio.h> #include<string.h> ty ...
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- MonoDevelop Debug Unity
环境 Unity 4.3.x MonoDevelop 4.0.1 资料 更新Unity4.3.X之后的版本,MonoDevelop的版本也进行了升级,IDE的界面发生了比较大的改变. 查阅了Unity ...
- es安装
1,安装java(至少1.8) yum install -y java java -version 在/etc/profile追加: JAVA_HOME=/usr/java/jdk1..0_45 PA ...
- C语言 简单的栈
//简单的栈 #include<stdio.h> #include<stdlib.h> //栈的介绍:栈先进后出,一般用于将数据逆序输出 //栈一般只有四种方法--进栈,出栈, ...
- C语言 百炼成钢14
//题目40:输入3个数a,b,c,按大小顺序输出.(使用指针完成) #include<stdio.h> #include<stdlib.h> //分析:用指针完成,说明不可以 ...
- C# 利用QRCode生成二维码图片
网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...
- LeetCode:Pascal's Triangle I II
LeetCode:Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For examp ...