不直接用NSLog

Posted *新星月-倪新生*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不直接用NSLog相关的知识,希望对你有一定的参考价值。

公司中不直接使用NSLog,而是利用宏定义自己的打印函数,将该打印函数写在项目的.pch文件中.调试的时候往往用到好多打印,但发布的时候确不需要.(一下是在公司中的一些处理)

 

 

一,固定写法:

        #define  MYLog(...)  NSLog(__VA_ARGS__)

二,注意:

        1,MYLog括号中的...是固定写法,表示可以接受任意多个参数.

        2,NSLog括号中的__VA_ARGS__  也是固定写法,前后用了两个下划线

三,使用方式:

        项目中Supporting files文件夹下有个 "工程名-Prefix.pch"文件,你可以在该文件下声明

        #define  MYLog(...)  NSLog(__VA_ARGS__)

        这样之后工程中的任何一个文件中都可以使用改自定的打印函数(也就是说可以在该.pch中放一些全局的东西)

四,好处:

        这样使用的好处就是,项目调试期间,我们可能会用到好多MYLog()函数打印.

        如果不需要时,只需将.pch中该宏修改为:(这样就相当于MYLog()代表的是注释了)

        #define  MYLog(...)  //NSLog(__VA_ARGS__)    

五,修改:(这样做还不够智能,每次调试的时候需要用到打印,发布的时候不需要打印还要手动修改一下)  

        其实系统提供了一个宏  DEBUG 表示在调试状态下

        因为上述代码可以优化为:    (下述代码是公司常用代码)

1
2
3
4
5
#ifdef DEBUG  //调试阶段
#define MYLog(...)  NSLog(__VA_ARGS__)
#else //发布阶段
#define MYLog(...)
#endif

 

                 

以上是关于不直接用NSLog的主要内容,如果未能解决你的问题,请参考以下文章

几个可以直接拿来用的jQuery代码片段

几个可以直接拿来用的jQuery代码片段

有啥方法可以用 NSLog 进行彩色打印?

iOS学习之代码块(Block)

提效小技巧——记录那些不常用的代码片段

代码笔记iOS-NSLog的使用