为什么不在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.h
或Foundation.h
,就像Xcode模板一样。 PCH的原因是在处理真正大规模的头文件(比如在UIKit中)时改进构build时间。
没有问题,如果是正确的,你可以手动添加PCH文件:
-
将新的PCH文件添加到项目: 新build文件>其他> PCH文件 。
-
在目标的生成设置选项中,将Prefix Header的值设置为PCH文件名,项目名称作为前缀(例如,名为
TestProject
项目和名为MyPrefixHeaderFile
PCH文件,将值TestProject/MyPrefixHeaderFile.pch
添加到plist)。提示:您可以使用诸如
$(SRCROOT)
或$(PROJECT_DIR)
来到您将.pch
放在项目中的path。 -
在“目标的生成设置”选项中,将“ 预编译前缀头
YES
的值设置为YES
。
您需要创build自己的PCH文件
添加New file -> Other-> PCH file
然后将此PCH文件的path添加到您的构buildsetting->prefix header->path
($(SRCROOT)/filename.pch)
我会用照片给你看
-
添加一个新的文件
-
转到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