- OC编程中包含一个预处理器,用于在编译前处理源文件。而预处理指令有其自己的一套语法,主要也是配合预处理文件pch使用比较多。
- 指令
头文件包含(#include, #import)
条件编译(#if, #elif, #else, #endif, #ifdef, #ifndef )
说明: 简单的 #if #elif 这些跟平时的判断预计是一样的。
#ifdef 如果有定义,就执行
#ifndef 如果没有定义,就执行诊断(#error, #warning # line)
(#pragma) 指令 提示分段使用
宏 #define 有名称的代码段。
在Xcode6之前创建新工程它会在工程的Supportting files 文件夹下面自动创建一个.pch文件。这是一个预编译文件
1.主要用于存放全局的宏定义
2.一些头部文件,比如全局都会使用的单例文件
3.设置调试信息的开关-
头文件的导入
这里需要手动的去配置文件的路径和开启预编译。
输入引用路劲 $(SRCROOT)/OC_Demo/PrefixHeader.pch
智能的导入成 绝对路径。
将这段定义放到pch文件中,在调试状态时候开启日志输出
#ifdef DEBUG // 调试状态
#define LOG() NSLog(@"开启调试LOG--");
#else // 发布状态
#define LOG()
#endif在pch文件代码已经设置好,还要去配置中设置好你所要用到的参数的值用于控制pch文件的访问,分别是打包编译的debug和release版本状态值。这里设置DEBUG = 1 而 Release 不设置参数。
分别选着运行时候的build状态,就可以看到输入日志中有没有执行相应的宏定义了。
- 打包运行状态的设置在 edit shceme 这里可以选择build的设置
-
修改run中的build configuration
在main()文件中添加 LOG();
-
分别更改打包状态后的运行结果
debug版本:
release版本:
简单是设置就可以控制打包时候日志的关闭和开启了