Xcode PCH文件选择

Xcode PCH文件选择,xcode,precompiled-headers,Xcode,Precompiled Headers,您正在尝试使用以加快编译速度。Xcode有一个名为YourProject_Prefix.pch的文件。您可以在其中包含任意数量的头文件 我的问题是,如何选择应该将哪些头文件放入PCH?你应该把你所有的头文件都放在那里,还是这实际上不是最好的呢?只需像下面那样把头文件导入那里 #ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #import "YourH

您正在尝试使用以加快编译速度。Xcode有一个名为YourProject_Prefix.pch的文件。您可以在其中包含任意数量的头文件


我的问题是,如何选择应该将哪些头文件放入PCH?你应该把你所有的头文件都放在那里,还是这实际上不是最好的呢?

只需像下面那样把头文件导入那里

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import "YourHeaderFile.h"
#endif
预编译的标题,尤其是在构建应用程序时,可能非常有用。.pch文件中的标头仅在第一次编译时编译,并且仅在将来更改标头时编译。如果你的应用程序导入了许多不变的框架/标题;这可能会加快编译速度,因为编译器将使用.pch,而不是每次编译时都编译每个导入的框架/类。

默认情况下,pch文件将包含在所有源文件中

这意味着您应该只在其中放入或多或少是全局的或永远不会更改的头文件。我相信,将所有的头放在其中会减慢编译速度,因为每次更改一个头时,都会导致项目中的所有其他文件都必须重新编译。我没有对此进行测试或研究

以下是我的一个项目的示例:

#ifdef __OBJC__
    #import <Cocoa/Cocoa.h>
    #import "Errors.h"
    #import "Localization.h"
    #import "Logging.h"
#endif

另外,把有关C++的链接注释加上一句话。C++使用模板,这样就可以进入头文件并使编译比Objtovic中要看到的要长得多。在objective-c中,您可能只有类型和接口,而不是头中的实现。

是的,但是,哪些文件应该被剪切?所有这些?编辑了我的答案,希望我能帮助你更多。是的,这似乎是一种权衡。pch中包含的内容越多,初始编译的速度就越快,但在某一点上,最终构建时间要长得多。我不知道我是否需要更多的RAM或者什么,但是当我在PCH中包含太多的文件时,总的来说编译过程会减慢10秒左右。如果您使用的是Xcode 5,请查看系统框架支持的模块。然后可以执行类似于@import-UIKit的操作;它将使用预编译的数据库,而不是实际的文本导入。您可以在单个文件中执行此操作,其速度与预编译一样快,并且不会全局添加导入。对于pch文件,添加不太可能更改的标题。因为如果他们确实更改了pch,那么pch将再次预编译,您将失去它的好处。