预处理和Pch文件的使用

  • 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.设置调试信息的开关

  • 头文件的导入


    预处理和Pch文件的使用_第1张图片
    预编译文件.jpg

这里需要手动的去配置文件的路径和开启预编译。
输入引用路劲 $(SRCROOT)/OC_Demo/PrefixHeader.pch
智能的导入成 绝对路径。

预处理和Pch文件的使用_第2张图片
配置路径.jpg
  • 将这段定义放到pch文件中,在调试状态时候开启日志输出
    #ifdef DEBUG // 调试状态
    #define LOG() NSLog(@"开启调试LOG--");
    #else // 发布状态
    #define LOG()
    #endif

  • 在pch文件代码已经设置好,还要去配置中设置好你所要用到的参数的值用于控制pch文件的访问,分别是打包编译的debug和release版本状态值。这里设置DEBUG = 1 而 Release 不设置参数。

预处理和Pch文件的使用_第3张图片
设置调试状态的宏参数.jpg

分别选着运行时候的build状态,就可以看到输入日志中有没有执行相应的宏定义了。

  • 打包运行状态的设置在 edit shceme 这里可以选择build的设置
修改打包运行状态.png
  • 修改run中的build configuration


    预处理和Pch文件的使用_第4张图片
    打包运行状态修改.png
  • 在main()文件中添加 LOG();

预处理和Pch文件的使用_第5张图片
main.jpg
  • 分别更改打包状态后的运行结果
    debug版本:


    预处理和Pch文件的使用_第6张图片
    debug的运行结果.png

release版本:


预处理和Pch文件的使用_第7张图片
release版本的运行结果.png

简单是设置就可以控制打包时候日志的关闭和开启了

你可能感兴趣的:(预处理和Pch文件的使用)