您的位置:首页 > 移动开发 > Objective-C

Object-c------description

2016-05-04 17:25 507 查看
main.m

//
//  main.m
//  description
//
//  Created by zhaogang on 16/5/4.
//  Copyright © 2016年 zhaogang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [[Person alloc] init];
p.age = 20;
p.name = @"jack";

//默认情况下,利用NSLog和%@输出对象时,结果时:<类名:内存地址>

/*
1. 会调用对象的p的-decription方法
2. 拿到-description方法的返回值(NSString *)显示到屏幕上
3. -description方法默认返回的是“类名+内存地址”
*/

NSLog(@"%@", p);

Class c = [Person class];
/*
1. 会调用类的+description方法
2. 拿到+description方法的返回值(NSString *)显示到屏幕上
*/

NSLog(@"%@",c);

//输出当前行号和文件名
NSLog(@"%d, %s", __LINE__, __FILE__);
//输出当前函数名
NSLog(@"%s", __func__);
}
return 0;
}


Person.m

//
//  Person.m
//  description
//
//  Created by zhaogang on 16/5/4.
//  Copyright © 2016年 zhaogang. All rights reserved.
//

#import "Person.h"

@implementation Person

// 决定了实例对象的输出结果
- (NSString *)description
{
return [ NSString stringWithFormat:@"age = %d, name = %@", _age, _name ];
}

// 决定了类对象的输出结果
+ (NSString *)description
{
return [ NSString stringWithFormat:@" Person , %p" , self];
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: