苹果的XCode在6版本之后新建项目时取消了自动创建预编译头文件pch,该文件里存放的工程中一些不常被修改的代码,比如常用的框架头文件,这样做的目的提高编译器编译速度。我们可以往里面加入一些项目中都要用到的宏,比如最常用的能自动打开或者关闭日志输出功能的宏

#ifdef DEBUG  // 调试阶段#define MJLog(...) NSLog(__VA_ARGS__)#else // 发布阶段#define MyLog(...)#endif

还有整个项目中都用得到得头文件,所以,预编译头文件可以让我们在开发中更加方便,它的好处不言而喻,我们知道当我们修改一个工程中某个文件代码时候,编译器并不是重新编译所有所有文件,而是编译改动过文件的,假如pch中某个文件修改了,那么pch整个文件里包含的的其他文件也会重新编译一次,这样就会消耗大量时间,所以它里面添加的文件最好是是很少变动或不变动的头文件或者是预编译的代码片段;

但在Xcode6之后苹果取消了自动生成预编译头文件的功能,原因可能是因为把大量的头文件和宏定义放到pch里边,导致编译时间过长。苹果去掉他可能是要加快编译时间增加用户体验。虽然失去了编程的便利性,但增加了用户体验,这也体现了苹果对用户体验的重视程度。

接下来我们就来创建预编译头文件:

首先新建PCH File文件:

然后修改buildsetting文件(搜索一下prefix):

将图中第二条红线处改为yes

然后双击Prefix Header那行的右边部分,在弹出的框中填入PCH文件的路径如:其中$(SRCROOT)代表的是项目的根目录

或者直接写 工程名/预编译文件名 也可以.

最后再在pch文件写如下代码

#ifdef __OBJC__#import <UIKit/UIKit.h>#import <Foundation/Foundation.h>#endif

好了 这样就添加完成了。

转载于:https://www.cnblogs.com/jgCho/p/4940211.html

怎么向Xcode6 IOS8之后向项目中添加预编译文件相关推荐

  1. VS项目中添加目录或者文件的方法

    添加已有的目录: 1. 把目录和文件copy至项目所在的目录 2. VS Solution Explorer中选择"Show All Files" 3. 右键点击target,选择 ...

  2. Abp Vnext应用程序项目中添加docker支持的小结

    文章目录 介绍 具体步骤 1.创建项目 2.添加docker支持 3.调整 4.运行实例 总结 介绍 abp vnext 里面的只有 module 项目里面是自动添加 docker 支持的,因为其是面 ...

  3. windows10 vs2013控制台工程中添加并编译cuda8.0文件操作步骤

    一般有两种方法可以在vs2013上添加运行cuda8.0程序: 一.直接新建一个基于CUDA8.0的项目:如下图所示, 点击确定后即可生成test_cuda项目:默认会自动生成一个kernel.cu文 ...

  4. 在项目中添加引用的意思

    1.要用不同程序集的类,先得添加引用,添加引用是告诉本程序解析时找寻的范围(通过项目添加引用和直接添加编译好后的dll是同一个效果, 最后都会在当前项目的bin目录下的debug(或release)中 ...

  5. VB.NET 在项目中添加App.config的配置

    右击项目,选择属性, 在属性中选择Settings选项卡,Scope选择User 这样就会在项目中添加了App.config配置 内容: <?xml version="1.0" ...

  6. 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片...

    在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...

  7. 在Xcode6中添加prefix.pch文件

    在Xcode6中添加prefix.pch文件 1. 创建prefix.pch文件 2.工程->BuildSettings->prefix END 转载于:https://www.cnblo ...

  8. Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

    Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序 2 ...

  9. 关于如何正确地在android项目中添加第三方jar包

                  在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception ...

  10. Vue项目中遇到了大文件分片上传的问题

    Vue项目中遇到了大文件分片上传的问题,之前用过webuploader,索性就把Vue2.0与webuploader结合起来使用,封装了一个vue的上传组件,使用起来也比较舒爽. 上传就上传吧,为什么 ...

最新文章

  1. GitHub 报告显示香港码农大爆发,诚实的程序员:转行只因工资高!
  2. 动态规划 4、基础背包问题总结(多重背包与多重背包的转化)
  3. 转 从内核文件系统看文件读写过程
  4. 23 | MySQL是怎么保证数据不丢的?
  5. Pycharm启动后总是不停的updating indices...indexing
  6. 【渝粤题库】广东开放大学 外贸会计1 形成性考核
  7. linux7 chkconfig,centos 6-7 chkconfig -systemctl关系对比
  8. 非线编辑软件 linux,Flowblade 2.0 发布,非线性开源Linux视频编辑器
  9. Spring组件之一 JDBC Template
  10. 『雕虫小技』用 Zend Guard 加密 html 页面
  11. 【SparkStreaming学习之二】 SparkStreaming算子操作
  12. 【AI面试题】什么是数据不平衡,如何解决
  13. Leetcode每日一题:724.Find Pivot Index(寻找中心索引)
  14. 初一到初三需要用计算机吗,初一到初三不注意这8点,就等着中考完后悔吧!...
  15. 主流数据库连接池性能比较 hikari druid c3p0 dbcp jdbc
  16. 小程序布局中class='container'的bug
  17. PE制作实录 —— 定义我的 PE 工具箱
  18. 正反馈理论与管理学——马太效应、比…
  19. unity下载与安装
  20. ARMv8-A架构基础之A64指令

热门文章

  1. env-FindClass()为NULL的一种解决办法
  2. JAVA反射构建对象
  3. 对 /etc/rc.d/init.d 目录的一点理解
  4. mysql算法优化原则_Mysql语句优化的原则——让你写sql更加顺手
  5. python入口文件_用Python作GIS之三:入口程序 - stargui.py
  6. presto读取oracle,Presto数据接入方式
  7. python的raw_对于Python中RawString的理解(引用)
  8. php中怎么创建对象,php创建对象有哪几种方法
  9. 擦拭法 java 泛型_廖雪峰Java4反射与泛型-3范型-4擦拭法
  10. 旋转研究(矩阵,欧拉角,四元数)