PCH文件选择

时间:2013-10-29 15:03:51

标签: xcode precompiled-headers

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

我的问题是,你如何选择哪些头文件应该进入你的PCH?你应该把所有的头文件扔到那里,还是实际上不是最佳?

2 个答案:

答案 0 :(得分:1)

只需导入您的头文件,如下所示。

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

预编译的标题,尤其是在构建应用期间,非常有用。 .pch文件中的标头仅在第一次编译,然后仅在标头将来更改时才编译。如果您的应用导入了许多不变的框架/标题;这可以加速构建(编译),因为编译器将在每次编译时使用.pch而不是编译每个导入的框架/类。

答案 1 :(得分:1)

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

这意味着你应该只在那里放置或多或少全局或永不改变的头文件。我相信将所有标题放在那里会降低编译速度,因为每次更改一个标题都会导致项目中的每个其他文件都不得不重新编译。 (我没有测试或研究过这个)

这是我的一个项目的样本:

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

此外,请将关于C ++的链接评论带入一定程度。 C ++使用模板,这样在头文件中进行编译所需的时间比在objective-c中看到的要长得多。在objective-c中,您可能只有类型和接口,而不是在头文件中实现。