iOS开发中调试信息的去除

调试方法

在iOS开发中有一种经常用到的调试方法->硬调试.
说得这么高大上,其实简单的说也就是只是一个NSLog输出而已.debug版本倒是无所谓.但是到了release版本,有些人经常会问,为什么他的APP在某些地方会卡顿.其实很简单,就是NSLog之类的输出语句耗费了一定的CPU性能,虽说iOS设备没有NSLog的输出终端,但其实这个NSLog确实是实实在在的”打印了的”.


那我们如何去掉这个NSLog呢.使用注释确实是一种比较省时省力的方法.但是,当一个工程大了的时候,是否真正的省时省力却是一件值得我们思考的事情.


不知道大家开发的时候用没有用过一些”间接的手段”.比如屏幕的宽度,不喜欢用 [UIScreen mainScreen].bounds.size.width而是使用#define一个比如KScreenWidth来替代上面的这个函数,方便调用.


对于#define,大家可能会说可能需要一个.h文件专门存放这个#define.然后每个文件都需要引用一下.
其实并不需要那么麻烦,在Xcode中有一种PCH文件,写在里面的语句自动的被全工程的其他文件引用.我们只需要在pch文件里面添加如下一段话就OK

#ifdef DEBUG//调试状态,打开LOG功能
#define NSLog(...) NSLog(__VA_ARGS__)
#define DEBUGTYPE YES
#else//发布状态,关闭LOG功能
#define NSLog(...)
#define DEBUGTYPE NO
#endif

上架的时候改成release版本就不会有NSLog输出了

你可能感兴趣的:(iOS测试小技巧)