看NSLog的文档,第一句话就说:Logs an error message to the Apple System Log facility.,所以首先,NSLog就不是设计作为普通的debug log的,而是error log;其次,NSLog也并非是printf的简单封装,而是Apple System Log(后面简称ASL)的封装。
注释nslog :不用你把所有NSLog的删除或注释,直接修改#if 判断的值就行了(1执行,0不执行)
#if 1
#define NSLog(FORMAT, ...) fprintf(stderr,"[%s:%d行] %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(FORMAT, ...) nil
#endif这样可以方便自己调试
其格式:
%@ 对象
%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位双字
深入理解NSLog在iOS应用中的使用
本文详细解析了NSLog在iOS开发中的作用,指出它主要用于错误日志记录而非普通调试,并提供了如何方便地对其进行注释或调试的方法。同时,文章介绍了NSLog的使用方式、参数类型及其格式化规则,帮助开发者更有效地进行错误追踪。
4072

被折叠的 条评论
为什么被折叠?



