您的位置:首页 > 其它

iPhone How-to:如何移除发布版本中的NSLog输出

2016-02-01 19:00 381 查看
iPhone开发中会经常使用NSLog将一些运行信息输出到终端,特别是出于调试的目的。但是实际的发布版本通常是不需要任何终端输出的。对于iPhone应用,这种终端输出的成本跟高。为了在发布版本中的移除NSLog输出也有几种办法。常见的一种就是定义一个DEBUG之类的常量进行NSLog相关代码的条件编译。不过用这种方法需要在每次新建一个项目时进行相应的设定,而且在Log时还需要进行条件编译处理。

本人认为更好的办法就是为项目定义一个自定义的Log函数,不仅可以有项目特色,而且可以透明地实现发布版本中NSLog输出的移除。自定义的Log函数如下:

#if TARGET_IPHONE_SIMULATOR

#define NDLog(format, …) NSLog(format, ##_VAR_ARGS_)

#else

#define NDLog(format, …) {}

#endif

当然,你如果不想多记一个自定义的Log函数,你还可以一不做二不休,直接重新定义下NSLog,代码如下:

#ifndef TARGET_IPHONE_SIMULATOR

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

#else

# define NSLog(...) {}

#endif

此外,TARGET_IPHONE_SIMULATOR还可以替换成__OPTIMIZE__,因此__OPTIMIZE__通常是在发布版本中定义的。你所需要做的就是将这些代码包含到项目的预编译头文件中。

赶快检查下你目前的项目是否需要进行些上述改变呢?

本文出自 “林家男孩” 博客,请务必保留此出处/article/4343689.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: