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浅析

@欢迎转载!转载请注明:[email protected]界迷糊小书童

时间: 2024-12-21 04:54:07

XCode6 生成prefix.pch文件的相关文章

苹果意欲何为?XCode6 舍弃prefix.pch文件

当我们升级到XCode6后, 新建工程发现默认是没有pch文件的,很多人开始不习惯了,苹果究竟为什么要取消这一个pch文件. 苹果认为,由于组件单一模块的原因,你不应该在你的prefix代码中放入任何的代码,把他们放在你确实需要放入的文件中.把你的定义放到属于他们的文件中. 尽量不要使用宏定义(define)..除非是非不得已的时候,(这里 插一句 不使用宏定义的原因是 宏定义是在预编译的时候处理的 因此 当你修改宏定义的时候 会导致大量的代码被重新编译 另外 宏定义存在许多潜在的bug 是因为

在Xcode6中添加prefix.pch文件

1. 创建prefix.pch文件 2.工程->BuildSettings->prefix END

Xcode6中添加pch文件

1. pch文件: pch表示“precompiled header”,叫做预编译头文件,Xcode6之后pch文件就需要手动添加,pch文件中一般放一些基本不会改变的代码,比如一些宏定义这样整个工程都可以使用或者一些框架的头文件. pch文件的目的是提高编译的效率,Xcode中某个文件被修改了,任何包含该文件的文件都需要重新编译.如果pch文件被修改了,pch所包含的所有文件都会重新编译,这样会消耗大量的时间. pch文件中定义宏定义和头文件: 2.Xcode6下添加pch文件步骤: (1)添

&lt;AppName&gt;-Prefix.pch文件的添加以及用法

iOS8  xcode6中添加pch全局引用文件 前沿:xcode6中去掉了pch,为了一些琐碎的头文件引用,加快了 编译速度! xcode6之前的版本建项目就自动添加了是这样的: xcode6后的版本要自己手动的添加步骤如下: 1)  2) 3) $(SRCROOT)/pchFile.pch 这样就ok了! ----------------------------------------------------------------------------------------------

Xcode6.1 Prefix.pch添加方式

本文转载:http://blog.csdn.net/foolsong/article/details/40653497 在Xcode6.1中创建工程默认是没有Prefix.pch文件的,需要我们手动的创建 1.首先创建一个  .pch 文件 命名方式:项目名-Prefix.pch 2.进行相关的配置

ios开发 &lt;AppName&gt;-Prefix.pch文件的用法详解

我们知道,每新建立一个工程,比如说HelloWord,在分类SupportingFiles里都会有一个以工程名开头-Prefix.pch结尾的文件,如HelloWord-Prefix.pch.对于这个文件,很长一段时间里笔者都没觉得它碍事.直到有一天笔者学习NSLog看网上的教程,大家是怎样在最终提交应用的时候,一次性将NSLog语句移除.网上大多转来转去的方法,都是说把如下的语句 #ifdef DEBUG#    define DLog(...) NSLog(__VA_ARGS__)#else

苹果试图做?XCode6 放弃prefix.pch档

当我们升级到XCode6后, 新建project发现默认是没有pch文件的.非常多人開始不习惯了,苹果到底为什么要取消这一个pch文件. 苹果觉得,因为组件单一模块的原因.你不应该在你的prefix代码中放入不论什么的代码,把他们放在你确实须要放入的文件里.把你的定义放到属于他们的文件里. 尽量不要使用宏定义(define)..除非是非不得已的时候.(这里 插一句 不使用宏定义的原因是 宏定义是在预编译的时候处理的 因此 当你改动宏定义的时候 会导致大量的代码被又一次编译 另外 宏定义存在很多潜

Prefix.pch文件的用法

我们知道,每新建立一个工程,比如说HelloWord,在分类SupportingFiles里都会有一个以工程名开头-Prefix.pch结尾的文件,如HelloWord-Prefix.pch.对于这个文件,很长一段时间里笔者都没觉得它碍事.直到有一天笔者学习NSLog看网上的教程,大家是怎样在最终提交应用的时候,一次性将NSLog语句移除.网上大多转来转去的方法,都是说把如下的语句 #ifdef DEBUG#    define DLog(...) NSLog(__VA_ARGS__)#else

【iOS开发-84】一般项目中,Xcode6怎么使用pch文件?

pch文件重要作用之一,是可以写一些宏变量,而宏变量主要是判断设备.判断系统版本这些. 在Xcode6中需要手动建立pch文件. (1)先建立一个pch文件 (2)设置,使得这个pch文件能被使用,即把这个pch文件放在整个项目的头文件中,即可被任意文件共用.在右边点击输入$(SRCROOT)/项目名/PCH文件名,如$(SRCROOT)/Net Lottery/WPPrefixHeader.pch,在Debug和Release两栏都设置. (3)成功,小试,输入以下一行代码,以后判断iOS7以