黑马程序员_description方法
来源:互联网 发布:网络推广销售岗位职责 编辑:程序博客网 时间:2024/05/16 10:41
黑马程序员_description方法
1. -description方法
使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出.
2. +description方法
使用NSLog和%@输出某个类对象时,会调用类对象的+description方法,并拿到返回值进行输出.
3.修改NSLog的默认输出
* 重写 -description 方法或者 +description 方法即可
4.死循环陷阱
* 如果在-description方法中使用NSLog打印self
#import <Foundation/Foundation.h.@interface Person : NSObject@property int age;@priperty NSString * name;@end@implementation Person// 决定了实例对象的输出结果- (NSString *)description{// 下面代码会引发死循环// NSLog (@"%@", self);return [NSString stringWithFormat:@"age = %d, name = %@", _age, _name);}// 决定了类对象的输出结果+ (NSString *)description{return @"abc";}@endvoid test9(){// 输出当前函数名NSLog (@"%s", __func__);}int main(){// 输出代码行号NSLog (@"%d", __LINE__);// NSLog输出C语言字符串的时候不能有中文// NSLog (@"%s", __FILE__);// 输出源文件的名称printf("%s\n", __FILE__);NSLog (@"%s", __func__);Person *p = [[Person alloc] init];// 指针变量的地址NSLog (@"%p", &p);// 对象的地址NSLog (@"%p", p);// <类名 : 对象地址>NSLog (@"%@", p);return 0;}void test2(){Class c = [Person class];// 1.会调用类的+description方法// 2.拿到+description方法的返回值(NSString *)显示到屏幕上NSLog (@"%@", c);}void test1(){Person *p = [[Person alloc] init];p.age = 20;p.name = @"Jack";// 默认情况下,利用NSLog和%@输出对象时,结果是:<类名: 内存地址>// 1.会调用对象p的-description方法// 2.拿到-description方法的返回值(NSString *)显示到屏幕上// 3.-description方法默认返回的是“类名+内存地址”// NSLog (@"%@", p);// 打印对象p的地址NSLog (@"%@", p);Person *p2 = [[Person alloc] init];p2.age = 25;p2.name = @"Jake";NSLog (@"%@", p2);}
0 0
- 黑马程序员_description方法
- 黑马程序员_OC基础08_description方法及SEL
- 黑马程序员--IOS_学习笔记_description
- 黑马程序员_OC基础04_description方法(自定义打印输出方法)
- 黑马程序员 构造方法
- 黑马程序员《.NET 方法》
- 黑马程序员 toString()方法
- 黑马程序员--方法
- 黑马程序员---构造方法
- 黑马程序员-构造方法
- 黑马程序员-构造方法
- 黑马程序员-java方法
- 黑马程序员----构造方法
- 黑马程序员_方法
- 黑马程序员 equals() 方法
- 黑马程序员--------构造方法
- 黑马程序员------Math常用方法(黑马视频)
- 【黑马程序员】方法的使用
- excel 数据导入程序(C#)
- C# 线程 计划任务
- ios 使用NSRegularExpression解析正则表达式
- 你也太懒了吧!呵呵...
- TQ2440 触摸屏入门
- 黑马程序员_description方法
- IPv6 在WindowsXP 下的設定
- PHP调试方法
- 字符串匹配的KMP算法--前缀和后缀的详解
- 驱动开发-01-加载、卸载、输出调试信息
- 黑马程序员---前置声明
- NSString什么时候用copy,什么时候用strong
- Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案
- QT项目配置文件内容