黑马程序员-------description
来源:互联网 发布:python 列表转为元组 编辑:程序博客网 时间:2024/05/16 12:05
------- IOS开发、IOS培训、期待与您交流! -------
1. -description方法
使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出
2. + description方法
使用NSLog和%@输出某个类对象时,会调用类对象+description方法,并拿到返回值进行输出
3. 修改NSLog的默认输出
l 重写-description或者+description方法即可
4. 死循环陷阱
l 如果在-description方法中使用NSLog打印self
------------------------------------------------------------------------------------------------
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property int age;
@property NSString *name;
@end
--------------------------------------------------------------------------------------------------
#import "Person.h"
@implementation Person
// 决定了实例对象的输出结果
//- (NSString *)description
//{
// // 下面代码会引发死循环
// // NSLog(@"%@", self);
// return [NSString stringWithFormat:@"age=%d, name=%@", _age, _name];
// //return @"3424324";
//}
// 决定了类对象的输出结果
+ (NSString *)description
{
return @"Abc";
}
@end
----------------------------------------------------------------------------------------------
#import <Foundation/Foundation.h>
#import "Person.h"
void test9()
{
// 输出当前函数名
NSLog(@"%s\n", __func__);
}
int main()
{
// 输出行号
NSLog(@"%d", __LINE__);
// NSLog输出C语言字符串的时候,不能有中文
// NSLog(@"%s", __FILE__);
// 输出源文件的名称
printf("%s\n", __FILE__);
test9();
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);
//Person *p2 = [[Person alloc] init];
//NSLog(@"%@", p2);
//NSString *name = @"Rose";
//NSLog(@"我的名字是%@", name);
Person *p2 = [[Person alloc] init];
p2.age = 25;
p2.name = @"Jake";
NSLog(@"%@", p2);
}
- 黑马程序员-------description
- 黑马程序员---oc description
- 黑马程序员-OC-description方法
- 黑马程序员-description的重写
- 10.黑马程序员-description方法、SEL
- 黑马程序员-description,NSLog补充以及SEL
- 黑马程序员---description方法(NSLog输出)
- 黑马程序员----objective-C description NSLog SEL
- 黑马程序员---Objective-C Description方法
- 黑马程序员--ios中load initialize description
- 黑马程序员---description方法
- 黑马程序员 _8 OC基础 id description sel的使用
- 13、黑马程序员-OC语言description方法和sel
- 黑马程序员一分类,类的本质,description,SEL
- 黑马程序员-OC-自定义构造方法和description方法
- 黑马程序员--OC--分类和重新定义description方法
- 黑马程序员--oc中的description方法
- 黑马程序员—IOS加强视频—@description方法
- SQL字符串截取
- 【Trie树】模板题-POJ-2001
- java学习课堂笔记5
- 利用java API实现本地文件上传至hdfs
- 三星推出第六款智能手表:可独立接打电话
- 黑马程序员-------description
- 2048 游戏中添加分数
- Excel2007无法在未启用宏的工作簿中保存vb项目
- linux less 命令 学习
- UVA - 11427 Expect the Expected (DP+概率)
- 伺服电机的调试步骤有哪些
- 利用talend import data from mysql to hive
- delphi checkbox设置灰色状态
- 电信联通扩增4G试点城市至40个 年底前有望商用