iOS如何搞定各种打印

基础打印
  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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容