3

我主要指的是应用程序级别的导入,而不是在您构建库时,在这种情况下,您应该避免在 .pch 文件中导入标头是显而易见的。

4

2 回答 2

5

.pch文件的重点是它可以被预编译一次并且不用管它。

如果您将所有应用程序头文件都导入到 .xml 文件中.pch,则每次更改其中任何一个头文件时都必须重新编译它,从而抵消所有好处。更糟糕的是,这意味着项目中的所有其他文件都必须重新构建,因为内容已.pch更改。

唯一应该被您拉入的.pch标头是几乎永远不会更改的标头,例如系统标头。

于 2013-02-05T19:18:16.173 回答
1

将所有导入添加到 pch 可能会使构建速度变慢。这真的取决于项目。

假设您有 100 个 .m 文件,其中一个使用 AVFoundation。如果您将 AVFoundation 标头添加到您的 pch,那么编译器必须为每个 .m 文件处理较大的 pch,但只有其中一个从中受益。这可能会更慢,也可能不会。差异可能太小而无法轻松测量。

如果您正在考虑将项目自己的 .h 文件添加到 pch 中,那肯定会使您的构建速度变慢,因为当您的任何 .h 文件发生更改时,Xcode 将重新编译每个 .m 文件。

仅在需要的地方包含框架头文件的另一个原因是,如果您决定将源文件复制到另一个项目,则可以更轻松地重用它们。

于 2013-02-05T19:18:11.400 回答