美文网首页
iOS NSLog 条件编译

iOS NSLog 条件编译

作者: 风儿吹啊吹 | 来源:发表于2019-10-13 13:32 被阅读0次

开发过程中,我们需要在编译的时候打印数据测试,而在发布时我们却不需要做这些几乎无用操作(不排除其他需求),所以可以通过如下操作来处理:在Debug模式下打印,Release模式下不做处理。

实现:
#ifdef DEBUG
#define NSLog(fmt, ...) NSLog((@"%s, [Line:%d] " fmt), __func__, __LINE__, ##__VA_ARGS__ )
#else
#define NSLog(...)
#endif

提示:不用 DEBUG 条件也可以自己设置。 在Build Settings中 搜索 "macro" ,到 Apple Clang - Preprocessing -> Preprocessor Macros 中设置。

图示.png
部分参数解释:
__func__ :打印当前函数名。
__LINE__:打印当前行号。
__VA_ARGS__:可变参数宏,实现思想就是在宏定义中参数列表的最后一个参数为省略号(即三个点)
##__VA_ARGS__ :可变参数宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错

参考:https://blog.csdn.net/q2519008/article/details/80934815
https://blog.csdn.net/wwwang89123/article/details/17436577

相关文章

  • iOS NSLog 条件编译

    开发过程中,我们需要在编译的时候打印数据测试,而在发布时我们却不需要做这些几乎无用操作(不排除其他需求),所以可以...

  • IOS NSLog宏定义

    IOS NSLog宏定义 标签(空格分隔): IOS IOS NSLog宏定义 宏定义NSLog方法,不用加";"...

  • MachO文件

    以一个简单的iOS项目,只有NSLog输出语句,然后编译(最好真机器),将编译后的MachO文件使用MachOVi...

  • iOS - 条件编译

    1.预处理指令 1)C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释。预处理过程扫描源代码,对其进行...

  • iOS条件编译

    在我们的工程中,很多时候只希望在满足一定条件的时候才进行编译,这是就需要用到条件编译。 #if #elif #el...

  • iOS代码api版本适配

    if (@available(iOS 10.0, *)) { NSLog(@"iOS 10.0之后才会打印...

  • iOS 调试

    iOS调试 - NSLog iOS调试 - 断点 iOS调试 - LLDB iOS调试 - EXC_BAD_ACC...

  • iOS:你真的理解你在用的自定义NSLog吗?

    iOS:你真的理解你在用的自定义NSLog吗? iOS:你真的理解你在用的自定义NSLog吗?

  • 【iOS】响应链

    条件:ViewA 点击动作执行的是NSLog(@"111");ViewB 点击动作执行的是NSLog(@"222"...

  • iOS让NSLog打印字典显示得更好看(解决中文乱码并显示成JS

    iOS让NSLog打印字典显示得更好看(解决中文乱码并显示成JSON格式) iOS让NSLog打印字典显示得更好看...

网友评论

      本文标题:iOS NSLog 条件编译

      本文链接:https://www.haomeiwen.com/subject/ecihmctx.html