基础打印
NSLog(@"打印字符串:%@",name);
NSLog(@"打印整形:%i",number);//或者 %li ; %ld ; %d
NSLog(@"打印字符:%c",c);
NSLog(@"打印单浮点数:%f",f);
NSLog(@"打印精度浮点数:%.2f",f);
NSLog(@"BOOL--b-->%@",isYES?@"YES":@"NO");//打印布尔类型
NSLog(@"%02ld",number);必须是两位的名字
C/C++/Objective-C中用于日志输出的预处理宏.
| Macro |
Format Specifier |
Description |
__func__ |
%s |
当前函数前面 |
__LINE__ |
%d |
源码文件中的行号 |
__FILE__ |
%s |
源码文件完整路径 |
__PRETTY_FUNCTION__ |
%s |
和__func__类似, 但是在 C++ 代码中包含更多的信息. |
| Macro |
Format Specifier |
Description |
NSStringFromSelector(_cmd) |
%@ |
当前选择器的名字 |
NSStringFromClass([self class]) |
%@ |
当前对象类的名字 |
[[NSString stringWithUTF8String:__FILE__] lastPathComponent] |
%@ |
源码文件的名称 |
[NSThread callStackSymbols] |
%@ |
当前栈信息的刻度字符串数组。仅用于调试,不用向终端用户展示或者在代码中用作任何逻辑。 |
2018-12-29 10:23:43.203781+0800 categoryDemo[17849:7074885] +[Person load],13
2018-12-29 10:25:03.438717+0800 categoryDemo[17953:7081199] +[Person load],13
在Xcode中 :
_cmd会返回一个SEL对象,而剩下的都是来自C/C++编译器的定义所以都会返回一个C的字符串,显示结果也都差不多,可能不同编译器会有小小的差别。
显然后面func系列要比_cmd好用,相对Objective-C类型内的方法调用,他不仅会显示方法名,还会显示类型,配合LINE,可以精确定位出Log在代码中的位置。
《iOS/Cocoa: 使用代码定位性更高的Log》
《iOS各种调试技巧豪华套餐》
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。