黑马程序员_OC基础04_description方法(自定义打印输出方法)
来源:互联网 发布:无基础学编程 编辑:程序博客网 时间:2024/04/29 14:47
---------------------------------------- android培训、java培训、期待与您交流! -------------------------------------------
一、-description方法(决定了实例对象的输出结果)
使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出
二、+ description方法(决定了类对象的输出结果)
使用NSLog和%@输出某个类对象时,会调用类对象+description方法,并拿到返回值进行输出
1)默认,不重写的输出
Class c = [Person class];//得到类对象c // 1.会调用类的+description方法 // 2.拿到+description方法的返回值(NSString *)显示到屏幕上NSLog(@"%@", c);输出:Person
2)重写在Person.m 的+description方法
// 决定了类对象的输出结果+ (NSString *)description{ return @"Abc";}执行1)中会输出:Abc
三、修改NSLog的默认输出
1、重写-description或者+description方法即可
1)在Person.m文件重写-description / +description方法
@implementation Person// 决定了实例对象的输出结果- (NSString *)description{ // 下面代码会引发死循环,不要在description 做输出 // NSLog(@"%@", self); return [NSString stringWithFormat:@"age=%d, name=%@", _age, _name];}@end
2)在main.m文件
Person *p = [[Person alloc] init]; p.age = 20; p.name = @"Jack"; // 默认情况下,利用NSLog和%@输出对象时,结果是:<类名:内存地址> // 1.会调用对象p的-description方法 // 2.拿到-description方法的返回值(NSString *)显示到屏幕上 // 3.-description方法默认返回的是“类名+内存地址” NSLog(@"%@", p);
3)输出:
age=20,name=Jack
1、 如果在-description方法中使用NSLog打印self
五、 打印增强
Person *p = [[Person alloc] init];1)打印对象地址:%p 如:NSLog(@"%p",p); 输出:0x100109760
2) 打印对象 <类名:对象地址>:%@ 如:NSLog(@"%@",p); 输出:<Person: 0x100109760>
3) 指针变量的地址:NSLog(@"%@",&p); 输出:0x7fff5fbff7d0
4)打印当前行号:NSLog(@"%d", __LINE__);
5) NSLog输出C语言字符串的时候,不能有中文:NSLog(@"%s", __FILE__);
6) 输出源文件的名称: printf("%s\n", __FILE__);
7) 输出当前函数名: NSLog(@"%s\n", __func__);
---------------------------------------- android培训、java培训、期待与您交流! -------------------------------------------
0 0
- 黑马程序员_OC基础04_description方法(自定义打印输出方法)
- 黑马程序员_OC基础08_description方法及SEL
- 黑马程序员_description方法
- 黑马程序员_OC构造方法
- 黑马程序员学习笔记_OC之类方法
- 黑马程序员_OC分类和构造方法
- 黑马程序员_OC对象的方法
- 黑马程序员_OC基础06_OC语法
- 黑马程序员_OC中的set方法和get方法
- 黑马程序员_OC学习之类方法与对象方法
- 黑马程序员_OC基础03_类的方法及self关键字
- 黑马程序员_OC基础03_类的方法及self关键字
- 黑马程序员_OC语言之类方法和关键字self
- 黑马程序员学习笔记14_OC之构造方法
- 黑马程序员_OC构造方法和ID类型学习学习
- 黑马程序员_OC点语法 id 构造方法复习
- 黑马程序员_OC点语法 id 构造方法复习
- 黑马程序员_OC基础02_分类(Category)
- OpenCV2中访问Mat元素
- C# 多线程模式 关闭/退出全部线程
- 线性表的输入输出查找删除插入(链式,尾插入)
- 数据结构与算法分析 学习笔记
- Ubuntu 使用笔记------win7下安装ubuntu12.04(64位)
- 黑马程序员_OC基础04_description方法(自定义打印输出方法)
- http://blog.csdn.net/c0de4fun/article/details/7318642/
- redis在PHP中的基本使用案例
- java 中特殊的关键字
- 关于Html模板中文显示不了问题
- smarty模板引擎————安装与使用
- 读书笔记--看见--2014年03月16日
- 连载:面向对象葵花宝典:思想、技巧与实践(8) - “接口” 详解
- DP训练 POJ-1050 To the Max