-
OC中Debug版本常用的打印格式化操作
%@ 对象
%d,%i 整型 (%i的老写法)
%hd 短整型
%ld , %lld 长整型
%u 无符整型
%f 浮点型和double型
%0.2f 精度浮点数,只保留两位小数
%o 八进制
%zu size_t
%p 指针地址
%e float/double (科学计算)
%g float/double (科学技术法)
%x: 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,小写a-f;
%X: 为32位的无符号整型数(unsigned int),打印使用数字0-9的十六进制,大写A-F;
%s char * 字符串
%.*s Pascal字符串
%c char 字符
%C unichar
%Lf 64位double
%lu sizeof(i)内存中所占字节数
打印CGRect : NSLog(@"%@",NSStringFromCGRect(someCGRect)); 或者CFShow(NSStringFromCGRect(someCGRect));
打印CGSize: NSLog(@"%@",NSStringFromCGSize(someCG Size ));
-
字符串格式化处理举例
如题所述:如何将字符串转化成浮点型,且精确度为小数点后12位
例如:字符串@“121.12343434343421”
解决办法:
[NSString stringWithFormat:@
"%.12f"
,[str floatValue]];
将字符串转化为数字,且保留小数点后的12位数
double tt = [[NSString stringWithFormat:@"%.12f",[@"121.12343434343421" doubleValue]]doubleValue];
NSLog(@"%f",tt);
elf.student.age = @([self.ageTF.text intValue]);
学生的年龄是一个nsnumber 类型 ,将NSString 类型转化为对应的类型。
-
宏文件的打印
// 以release模式编译的程序不会用NSLog输出,而以debug模式编译的程序将执行NSLog的全部功能。
#ifndef __OPTIMIZE__
# define NSLog(...) NSLog(__VA_ARGS__)
#else
# define NSLog(...)
#endif
或
#ifdef __OPTIMIZE__
#define NSLog(...)
#endif
这个代码的魔术在于:release模式通常会定义 __OPTIMIZE__,debug模式不会。
将这段代码放在头文件当中,就可以放心的使用NSLog了!
把这些代码放到*Prefix.pch中最省事。可以把这段宏定义放到一个头文件中,再把这个头文件包含到*Prefix.pch中。