在开发的过程中,我们经常要输出一些必要的信息,通过控制台的输出信息我们就可以知道整个数据交互的一个流程,但是如果在应用发布的时候带有太多的NSLog输出,那么肯定对App的性能有所影响,但是又不能不输出必要的信息查看,这个时候我们就可以使用一个宏定义来处理,在开发的时候使用debug模式,发布的时候我们使用release模式,这样在发布的时候App就不会在应用内部做大量的输出操作了。代码很简单:
#ifdef DEBUG
//debug模式
//do some thing
#else
//release模式
//do some thing
#endif
上面代码中的#ifdef DEBUG宏定义的意思就是如果定义了debug,那么就走debug模式中的代码,而不会走#else中的代码,对于我们输出操作就可以放在debug模式下输出,当发布的时候我们调为release模式,那么debug模式下的输出语句就会直接忽略,自然就不会输出了。那么可能有人会疑问这个#ifdef DEBUG宏定义来自哪,其实这个不用担心的,这个宏来自Xcode的默认设置,当我们的应用要发布的时候也可以取消 debug模式,开启release模式,切换两种模式的方法如下:
以上呢就是这两种模式的切换方法,这样做呢就可以在开发阶段输出我们想要查看的信息,发布的时候更为应用节省了一些硬件设备的资源,不过在Xcode中默认的开发环境都是debug模式的。
到这里呢在补充一点,在Xcode中我们怎么确定当前到底是不是debug模式呢?好,我们继续看下面:
首先确定下项目里Build Setting是否已经设置过宏定义debug,如何看呢?点击Build Setting ,然后在搜索框里输入macros,如下图:
如果已经设置过,在 Preprocessor Macros 的 Debug 后面会有 DEBUG=1,如果没有,就手动设置下。
接下来就可以这样做了
#ifdef DEBUG
//do sth.
#else
//do sth.
#endif
个人见解,欢迎大家给提出宝贵的意见!