引言
原文:
https://blog.csdn.net/z929118967/article/details/113755392
pch头文件的内容能够被项目中的其他所有源文件共享和访问,通常我们可在pch文件定义一些全局的宏和导入一些基础类
例如:在pch文件中添加预处理指令,可以在发布应用的时候,一次性将NsLog语句移除;
I、Xcode 添加PCH文件步骤
- 1.) 打开你的Xcode工程. 在Supporting Files目录下,
选择 File > New > File > iOS > Other > PCH File 然后点击下一步;
- 2.) 给你的PCH文件起名字TestDemo-Prefix.pch. 例如你的项目工程名为TestDemo然而你的PCH 文件的名字应该为 TestDemo-Prefix.pch,然后创建;
- 3)pch示例:
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
#import "QCTConsts.h"
#import "UIWindow Extension.h"
#pragma clang poison NSLog //移除程序中的指定identifier(标识符)
#endif /* PrefixHeader_pch */
- 4.) 找到 Project > Build Settings > 搜索 “GCC_PREFIX_HEADER“;
- 5.) “Apple LLVM -Language″ 栏目中你将会看到 Prefix Header 关键字;
- 6.) 输入: YourProjectName/YourProject-Prefix.pch
如 TestDemo/TestDemo-Prefix.pch
在这里插入图片描述
- 7.),将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度。
GCC_PRECOMPILE_PREFIX_HEADER
- 8.) Clean 并且 build 你的项目.
这里写图片描述
II、 常用预处理指令
2.1 移除程序中的指定identifier(标识符)
#pragma clang poison identifier
应用场景:禁止使用ObjC 的运行时API
- 例子:
#pragma clang poison NSLog
在这里插入图片描述
2.2 DEBUG 宏的应用
1、原文:https://kunnan.blog.csdn.net/article/details/109624460 2、应用场景:区分调试模式和发布模式进行特殊处理 3、The DEBUG preprocessor macro setting in an Xcode project
4、发布模式关闭NSLog