XCode6 生成prefix.pch文件
XCode6里, 新建工程默认是没有pch文件的,苹果取消pch文件这一点肯定有它的道理,刚開始非常多人可能不适应,假设我们想使用pch文件,须要手动加入,加入过程例如以下:(依然直接上图)
@ 取消的原因:
Stackoverflow上有一个人对此的解释是这种:
I suspect because of modules, which remove the need for the #import <Cocoa/Cocoa.h>.
As to where to put code that you would put in a prefix header, there is no code you should put in a prefix header. Put your imports into the files that need them. Put your definitions into their own files. Put your macros...nowhere. Stop writing macros unless there is no other way (such as when you need __FILE__). If you do need macros, put them in a header and include it.
The prefix header was necessary for things that are huge and used by nearly everything in the whole system (like Foundation.h). If you have something that huge and ubiquitous, you should rethink your architecture. Prefix headers make code reuse hard, and introduce subtle build problems if any of the files listed can change. Avoid them until you have a serious build time problem that you can demonstrate is dramatically improved with a prefix header.
In that case you can create one and pass it into clang, but it's incredibly rare that it's a good idea.
翻译过来 大致就是说 或许是由于组件单一模块的原因,所以 放弃了对
<Cocoa/Cocoa.h>
的import你不应该在你的prefix代码中放入不论什么的代码,把他们放在你确实须要放入的文件里。把你的定义放到属于他们的文件里。 尽量不要使用宏定义(define)。。除非是非不得已的时候,(这里 插一句 不使用宏定义的原因是 宏定义是在预编译的时候处理的 因此 当你改动宏定义的时候 会导致大量的代码被又一次编译 另外 宏定义存在很多潜在的bug 是由于在预编译的时候,他并不会被发觉到的)。假设你确实 在被逼无奈须要使用宏定义,把他们放在须要被include的头文件里,而不是放在prefix文件里。
prefix header文件是被那些大量使用 以及 差点儿全部系统中的文件都须要被使用(比如 Foundation.h)。假设 你有一些东西大量存在,你应该又一次思考你的架构问题你。由于 当你改动你prefix header的一些代码的时候,prefix header导致整个项目又一次编译,这让你的代码重用变得困难,而且导致一些琐碎build的问题。所以 不要去使用prefix header 这样能够避免你大量的又一次编译整个项目的时间
假设你仍然想要使用预编译,你能够创建一个新的而且传递给编译器的前段,这个方案非常少见(我没用过),但确实是一个不错的方法
@ 还能够參考:XcodePrecompilePrefixHeader浅析
@欢迎转载!转载请注明:iOS@界迷糊小书童
相关文章
- mac os X生成core文件
- Android实例-路径信息及文件和文件夹的操作(XE8+小米2)
- 如何生成.mobileprovision文件
- 第二百七十三节,Tornado框架-文件上传
- vue生成路由实例, 使用单个vue文件模板生成路由
- gitignore git提交忽略文件
- jmeter分布式压测,linux环境master控制机生成的jtl文件本地打开后请求和响应报文均为空
- 文件同步类SimFileSync.class.php
- 使用POI生成Excel文件,可以自动调整excel列宽
- jmeter分布式压测,执行命令后jtl文件没有生成
- .jar包文件的生成与运行
- Vue项目使用file-saver将html转word文件、把html内容下载保存导出到本地生成doc文件包括图片:前端下载利器FileSaver
- 文件和文件夹的操作——文件操作
- VS2013默认打开HTML文件没有设计视图的解决办法
- Linux下so文件的生成和使用
- log4js-node:node.js日志框架输出到文件
- 如何修改Vscode查看源代码管理版本变动文件的查看方式
- python基础4--文件操作
- 编译 jpcap 运行在 aarch64平台生成 libjpcap.so 文件
- 多线程的对照与案例(计算文件夹下文件的大小)
- 163:vue+openlayer 根据polygon信息显示多边形,导出KML文件,自定义name和style
- rsync 远程拷贝文件
- dump文件类型与dump文件生成方法详解
- log4net 不生成日志文件的解决办法
- MIF文件生成说明
- shell动态生成.sql文件的方法进阶2