首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

依据Debug和Release状态的变化来屏蔽日志输出

2012-06-28 
根据Debug和Release状态的变化来屏蔽日志输出??? 找到 PreProcessor Macros 这个属性,对于 Debug 配置我们

根据Debug和Release状态的变化来屏蔽日志输出

??? 找到 PreProcessor Macros 这个属性,对于 Debug 配置我们给他写上 DEBUG,而在 Release 配置中把它留空。 这样我们刚才那段预处理命令就可以根据这个标志来判断我们编译的时调试版本还是发布版本,从而控制 NSLog 的输出。 (因为 Xcode 4 会把 debug/release 两个配置项同时对比展现出来,而 3.x 版本的只能分别设置,如果你用的时xcode 3.x 开发工具, 那么就分别对 Debug/Release 都检查一下)。

??? 到了这里我们这个判断工作就都进行完了,不过这里还有一点比较麻烦,就是我们如果想实用 CLog 宏,就必须要导入 CLog.h 这个头文件。 不过 Xcode 为我们提供了一种非常巧妙的解决办法。 我们自己看一下项目里的文件,是不是有一个叫做 xxx-prefix.pch 的文件,只要注意到 pch 这个扩展名就可以了。 这个文件是做什么用的呢? 下面是一个 pch 文件的样本:

??? //
??? // Prefix header for all source files
??? //
??? #import <Availability.h>
??? #ifndef __IPHONE_3_0
??? #warning "This project uses features only available in iPhone SDK 3.0 and later."
??? #endif
??? #ifdef __OBJC__
??????? #import <UIKit/UIKit.h>
??????? #import <Foundation/Foundation.h>
??? #endif

??? 这里引入了一些头文件, 其实是 Xcode 的一种预编译机制,我们在编译一个项目的时候,会有很多常用的源文件,并且这些代码文件几乎不被修改,所以 Xcode 对这些文件只在早期进行一次编译,以便我们以后的多次构建过程中反复实用。 例如这里的 UIKit 和 Foundation ,这样的机制可以加快我们每次构建项目的速度。 当然这里我们不必太深究它,知道它的作用后,我们就可以利用它来为我们的开发提供便利。 我们只需要将刚刚建立的 CLog.h 也在这里面引入一下,这样我们项目中的所有文件就都能够访问到我们刚刚定义的 CLog 宏了。 下面是完成后的 pch 文件:

??? #import <Availability.h>
??? #ifndef __IPHONE_3_0
??? #warning "This project uses features only available in iPhone SDK 3.0 and later."
??? #endif
??? #ifdef __OBJC__
??????? #import <UIKit/UIKit.h>
??????? #import <Foundation/Foundation.h>
??????? #import "CLog.h"
??? #endif

??? 这样,我们的 CLog 就完成了,现在可以在任何一个源文件中实用 CLog 宏来输出日志,预处理命令会自动判断当前的编译配置,如果是 Debug,就会输出日志,反之则什么都不会输出。

热点排行