为什么ProjectName-Prefix不是。在Xcode 6中自动创建pch ?

是否不再需要预编译头?

我应该把ProjectName-Prefix中的代码写在哪里。PCH之前?


当前回答

我给你看一张照片!

添加一个新文件 进入“项目/构建设置/APPl LLVM 6.0-Language”

其他回答

添加。pch文件-

1)添加新的。PCH文件到你的项目->新文件->其他->PCH文件

2)进入项目的构建设置。

3)搜索“prefix header”。你可以在Apple LLVM下找到它。

4)粘贴到$(SRCROOT)/yourPrefixHeaderFileName.pch字段

5)清洁和建造项目。 就是这样! !

使用:

$ (PROJECT_DIR) /项目名称/ PrefixHeader.pch

添加新的PCH文件遵循以下步骤:

(1)添加新文件—选择iOS—其他和PCH文件

(2)将此PCH文件的路径添加到您的Project - BuildSetting - Apple LLVM 6.0 Language

增加“设置前缀头路径YourApplicationName(根路径)/filename.pch”

您需要创建自己的PCH文件 添加新文件-> Other-> PCH文件

然后将这个PCH文件的路径添加到您的构建设置->前缀头->路径

($ SRCROOT) / filename . pch)

我怀疑是因为模块,它消除了对#import <Cocoa/Cocoa.h>的需求。

至于在前缀标头中放置代码的位置,没有应该放在前缀标头中的代码。将您的导入放到需要它们的文件中。将定义放入它们自己的文件中。把宏放到任何地方。停止编写宏,除非没有其他方法(比如当你需要__FILE__时)。如果你确实需要宏,把它们放在一个标题中并包含它。

对于整个系统中几乎所有内容都使用的大型文件(如Foundation.h),前缀头是必要的。如果你有这么大且无处不在的东西,你应该重新考虑你的架构。前缀头使代码重用变得困难,如果列出的任何文件都可能更改,则会引入微妙的构建问题。避免使用它们,直到遇到严重的构建时间问题,并且可以证明使用前缀头可以显著改善。

在这种情况下,您可以创建一个并将其传递给clang,但这是一个非常罕见的好主意。


编辑:关于你在所有视图控制器中使用的HUD的具体问题,是的,你绝对应该将它导入实际使用它的每个视图控制器中。这使得依赖关系变得清晰。当你在一个新项目中重用你的视图控制器时(如果你构建了你的控制器,这是很常见的),你会立即知道它需要什么。这对于类别来说尤其重要,如果它们是隐式的,则会使代码很难重用。

PCH文件不是用来消除清单依赖关系的。你仍然应该根据需要导入UIKit.h或Foundation.h,就像Xcode模板那样。使用PCH的原因是为了在处理大量的头文件(如UIKit)时提高构建时间。