为什么不在Xcode 6中自动创buildProjectName-Prefix.pch?

为什么不在Xcode 6自动创buildProjectName-Prefix.pch

预编译头文件不再需要吗?

我应该在哪里编写ProjectName-Prefix.pch的代码?

我怀疑是因为模块,它删除#import <Cocoa/Cocoa.h>

至于把代码放在前缀头文件中的位置,没有代码应该放在前缀头文件中。 把你的导入到需要它们的文件中。 把你的定义放到他们自己的文件中。 把你的macros…无处。 停止编写macros,除非没有其他的方式(比如当你需要__FILE__ )。 如果你确实需要macros,把它们放在一个头文件中并包含它。

前缀头文件对于那些庞大且被整个系统中的几乎所有东西(比如Foundation.h )所使用的东西是必需的。 如果你有一些巨大而无处不在的东西,你应该重新思考你的架构。 前缀头使代码重复使用困难,并且如果列出的任何文件都可以改变,则会引入细微的构build问题。 避免它们,直到你有一个严重的构build时间问题,你可以certificate是显着改善与前缀头。

在这种情况下,你可以创build一个并将其传递给叮当声,但这是一个好主意,这是非常罕见的。


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

PCH文件不能摆脱列表依赖关系。 您仍然应该根据需要导入UIKit.hFoundation.h ,就像Xcode模板一样。 PCH的原因是在处理真正大规模的头文件(比如在UIKit中)时改进构build时间。

没有问题,如果是正确的,你可以手动添加PCH文件:

  1. 将新的PCH文件添加到项目: 新build文件>其他> PCH文件

  2. 在目标的生成设置选项中,将Prefix Header的值设置为PCH文件名,项目名称作为前缀(例如,名为TestProject项目和名为MyPrefixHeaderFile PCH文件,将值TestProject/MyPrefixHeaderFile.pch添加到plist)。

    提示:您可以使用诸如$(SRCROOT)$(PROJECT_DIR)来到您将.pch放在项目中的path。

  3. 在“目标的生成设置”选项中,将“ 预编译前缀头 YES的值设置为YES

您需要创build自己的PCH文件
添加New file -> Other-> PCH file

然后将此PCH文件的path添加到您的构buildsetting->prefix header->path

($(SRCROOT)/filename.pch)

在这里输入图像说明

我会用照片给你看

  1. 添加一个新的文件 添加一个新的文件

  2. 转到Project / Build Setting / APPl LLVM 6.0-Language 添加一个新的文件

要添加.pch文件 –

1)将新的.pch文件添加到您的项目 – >新build文件 – >其他 – > PCH文件

2)转到你的项目的构build设置。

3)search“前缀头”。 你可以在Apple LLVM下find。

4)将其粘贴到$(SRCROOT)/yourPrefixHeaderFileName.pch

5)清理和build设项目。 而已!!!

在这里输入图像说明

如果您决定手动添加.pch文件,并且想要像使用xCode 6一样使用Objective-C,则还必须在.pch文件中导入UIKit和Foundation框架。 否则,您将不得不在每个头文件中手动导入这些框架。 无论如何,您可以添加下面的代码,因为它testing使用的语言:

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

要添加新的PCH文件,请按照以下步骤操作:

(1)添加新的fiew – selectiOS – 其他和PCH文件

(2)将此PCH文件的path添加到您的项目 – BuildSetting – Apple LLVM 6.0语言

添加设置前缀头文件pathYourApplicationName(root-path)/filename.pch

使用 :

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