iOS 编程之使用Precompile Prefix Header
一:为什么Xcode6没有自动创建Precompile Prefix Header
我们在写项目的时候,大部分宏定义,头文件导入都在Precompile Prefix Header文件里面。在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被阉割掉了,原因可以参考下面的链接:
Xcode 6去掉Precompile Prefix Header的主要原因在于:
(1)去掉自动导入的系统框架类库的头文件,可以提高原文件的复用性,便于迁移。
(2)一个肥胖无比的Prefix Header会大大增加Build Time。
二:使用Precompile Prefix Header的好处
为了取代在Prefix Header中自动导入的框架,可以在每一个需要导入系统框架的文件中通过@import来手动导入。如果在Prefix Header中导入了,那么我们在工程的每一个文件中可以免费获得使用的权利,而无需手动在每一个.h/.m文件中导入。该文件确有其方便之处。
三:给工程中添加Precompile Prefix Header
如果一定要用到Precompile Prefix Header,可以参考Xcode 5的配置来手动设置。
(1)创建一个pch文件: Command+N,打开新建文件窗口:ios->other->PCH file

(2)给pch文件命名
在工程中增加一个pch文件,命名还是按照Xcode 5的模板比较好:工程名-Prefix.pch,例如a-Prefx.pch

(3)修改工程配置文件,将刚刚创建的PCH file的路径添加到building setting中的precompile header选项中去,注意debug和release两栏都要添加:

注意:
- 将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度
修改pch文件路径按照如下格式:将building setting中的precompile header选项的路径添加“$(SRCROOT)/项目名称/pch文件名”(例如:$(SRCROOT)/自定义数字键盘/自定义数字键盘-Prefix.pch)
(4)向pch文件中添加文件

总结:Apple标都建议我们不用pch了,那么还是尽量少用吧。当然,如果一定要用,还是尽量减少pch文件中
的内容,降低工程对pch文件的依赖性,便于日后的迁移和解耦。
至此,向Xcode6中添加pch文件圆满结束!
iOS 编程之使用Precompile Prefix Header的更多相关文章
- Xcode6为什么干掉pch(Precompile Prefix Header)&怎样加入pch文件
一直在用xcode6开发,但项目都是在xcode5上创建的,所以一直没注意到,xcode6居然干掉pch文件了. 为什么xcode6没有自己主动创建pch文件呢? 简单地看:我们在写项目的时候,大部分 ...
- Xcode6为什么干掉pch(Precompile Prefix Header)&如何添加pch文件
转载: http://blog.csdn.net/iosdevtip/article/details/40918353 一直在用xcode6开发,但项目都是在xcode5上创建的,所以一直没注意到, ...
- Xcode6中手动添加Precompile Prefix Header
Xcode5中创建一个工程的时候,系统会自动创建一个以以工程名为名字的pch(Precompile Prefix Header)文件,开发的过程中可以将广泛使用的头文件以及宏包含在该文件下,编译器就会 ...
- iOS添加Prefix Header
1. 添加Prefix Header 注: Xcode 6苹果默认去掉prefix Header, 用以提高原文件的复用性, 便于迁移. 并且可以一定程度上减少Build Time. 解决办法: (1 ...
- Precompile Prefix file(.pch文件)
参考资料: http://blog.csdn.net/lwjok2007/article/details/46385595 http://www.tuicool.com/articles/beURbe ...
- iOS-----解决Prefix Header出错的问题
我们在使用 Prefix Header 预编译文件时有时会遇到如下的报错 clang: error: no such file or directory: '/Users/linus/Dropbox/ ...
- iOS开发-为我们的项目添加头文件prefix header
在XCode6新建项目时,不再自动创建头文件,因此我们需要手动添加. 点击我们的项目->Build Settings -> all -> 搜索“prefix” -> 修改pre ...
- [译] 二、开始iOS编程之前,你还需要做什么?
声明:本文翻译自AppCoda网站的文章:What You Need to Begin iOS Programming?,作者是创建者Simon Ng.如有异议,请联系博主. 更新:帖子已经重新被 ...
- IOS编程User Interface基础
IOS编程之User Interface基础 目录 概述 相关概念 常见问题 状态栏的隐藏 应用图标的设置 概述 IOS用户界面是APP呈现给用户最直观.最常用的方式,因此学会用户界面的编程是学习IO ...
随机推荐
- LeetCode OJ--Search in Rotated Sorted Array
http://oj.leetcode.com/problems/search-in-rotated-sorted-array/ 转换了一次的有序数组,进行类似二分查找. 从begin到mid和从mid ...
- 同时在windows和linux环境开发时换行符的处理
Git 的 core.autocrlf 參數默认为true,即每次 checkin 時,Git 會將純文字類型的檔案中的所有 CRLF 字元轉換為 LF,也就是版本庫中的換行符號一律存成 LF:在 c ...
- luogu P1080 国王游戏
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...
- react 起手式
http://blog.csdn.net/zhouzhiande/article/details/52349344 http://blog.csdn.net/zhouzhiande/article/d ...
- linux 每天备份mysql数据
原文:http://www.open-open.com/code/view/1433587311890 前言: 如果你的数据库文件较大,可能备份的时候需要占用很多服务器资源,所以站长要尽量选择访客最少 ...
- EasyDarwin开源手机直播方案:EasyPusher手机直播推送,EasyDarwin流媒体server,EasyPlayer手机播放器
在不断进行EasyDarwin开源流媒体server的功能和性能完好的同一时候,我们也配套实现了眼下在安防和移动互联网行业比較火热的移动端手机直播方案,主要就是我们的 EasyPusher直播推送项目 ...
- 常用linux系统监控命令
一.内存监控 监控内存的使用状态是非常重要的,通过监控有助于了解内存的使用状态,比如内存占用是否正常,内存是否紧缺等等,监控内存最常使用的命令有free.vmstat.top等 1.1 free $ ...
- Jenkins+maven+SVN+Tomcat部署过程
一.下载地址 应首先确认安装了JDK: Jenkins下载地址:http://mirrors.shu.edu.cn/jenkins/windows-stable/jenkins-2.107.3.zip ...
- openwrt gstreamer实例学习笔记(五. gstreamer BUS)
1)概述 BUS(总线) 是一个简单的系统,它采用自己的线程机制将一个管道线程的消息分发到一个应用程序当中.总线的优势是:当使用GStreamer的时候,应用程序不需要线程识别,即便GStreamer ...
- VC最小化到托盘程序
在实际操作电脑的过程中,我们常常可以看到一些应用程序可以最小化到桌面右下角的托盘中显示,如一些杀毒软件等开机就显示在托盘中,或是我们常用的QQ等聊天工具,都可以最小化在托盘中,如图-1. 在图-1中, ...