NSLog各种打印格式

原文转载:https://blog.csdn.net/victorai60/article/details/48627283

%@ 对象

%d, %i 整型 (%i的老写法)

%hd 短整型

%ld, %lld 长整型

%u 无符整型

%f 浮点型和double型

%0.2f 精度浮点数,只保留两位小数

%x 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,小写a-f;

%X 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,大写A-F;

%o 八进制

%zu size_t

%p 指针地址

%e float/double (科学计算)

%g float/double (科学技术法)

%s char *  字符串

%.*s Pascal字符串

%c char 字符

%C unichar

%Lf 64位double

%lu sizeof(i)内存中所占字节数

打印CGSize:NSLog(@"%@", NSStringFromCGSize(someCGSize));

打印CGRect:NSLog(@"%@", NSStringFromCGRect(someCGRect));
或者CFShow(NSStringFromCGRect(someCGRect));

定义宏

由于NSLog的使用效率比较低,所以在我们的项目中非调试状态下不应该出现大量的NSLog,所以有些时候我们会在项目的.pch文件中去定义一个宏,让调试打印函数只在调试的时候有用,发布的时候就不能使用。
在Xcode6之前,项目中Supporting files文件夹下有个 “工程名-Prefix.pch”文件,你可以在该文件下声明我们的宏,这样之后工程中的任何一个文件中都可以使用该宏(也就是说可以在.pch中放一些全局的东西)。Xcode6之后,可能是因为大家把大量的头文件和宏定义放到pch里边,导致编译时间过长,苹果就去掉了pch文件,但是我们仍可以手动添加。

#ifdef DEBUG
#define NSLog(FORMAT, ...) MGLog(stderr,"%s:%d\t %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif

你可能感兴趣的:(NSLog各种打印格式)