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
本人认为更好的办法就是为项目定义一个自定义的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
相关文章推荐
- 获取 Android 设备的唯一标识码
- MySQL触发器 trigger之for each row
- 将字符串拆成数组,过滤字符串
- 【Maven由浅入深】4.在Eclipse中建立简单的项目1
- 文本导出到pdf文件(使用QPrinter和QPainter和QTextDocument)
- 分页查询
- 【思维方式】思维转个弯
- osgearth访问自配置wfs矢量服务
- PyQt5 笔记(05):信号/槽
- JumpServer双机备份方案
- 如何在交互式shell脚本中创建对话框
- android-cannot resolve the method(handlerMessage(android.os.Message))
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- Java 获取请求主机IP地址
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- QTableWidget排序问题
- fix orphaned user
- HYSBZ/BZOJ 3503 和谐矩阵 - 高斯约当消元异或方程