NSLog
NSLog与C语言的printf非常相似,都是格式化输出消息。
格式化表
项目 | 价格 |
---|---|
%@ | 对象 |
%d, %i | 整数 |
%u | 无符整形 |
%f | 浮点/双字 |
%x, %X | 二进制整数 |
%o | 八进制整数 |
%zu | size_t |
%p | 指针 |
%e | 浮点/双字 (科学计算) |
%g | 浮点/双字 |
%s C | 字符串 |
%.*s | Pascal字符串 |
%c | 字符 |
%C | unichar |
%lld | 64位长整数(long long) |
%llu | 无符64位长整数 |
%Lf | 64位双字 |
description
- NSLog使用%@输出一个对象的时候,就会调用这个对象的上的decription方法,如果你不重写该方法,它会使用父类的中这个方法。
- 对象方法 decription方法在NSObject类中有个默认实现就是类名和这个对象的地址
- 如果你要定制对象的输出就需要重写decription方法
- 当使用NSLog输出类对象的时候,就调用该类的类方法decription
//.h
@interface ZZPerson : NSObject
@property (nonatomic, assign) int age;
@property (nonatomic, copy) NSString *name;
@end
//.m
@implementation ZZPerson
- (NSString *)description
{
return [NSString stringWithFormat:@"age = %d,name = %@",_age,_name];
}
@end
//main
ZZPerson *person = [ZZPerson new];
person.name = @"小明";
person.age = 1;
NSLog(@"%@",person);
//输出
//age = 1,name = 小明
//Program ended with exit code: 0