为什么不ProjectName-Prefix.pch自动创建Xcode 6?
ProjectName-Prefix.pch
Xcode 6
是否不再需要预编译头文件?
我应该在哪里写ProjectName-Prefix.pch之前的代码?
我怀疑是因为模块,它消除了对#import <Cocoa/Cocoa.h>.
#import <Cocoa/Cocoa.h>
至于将要放入前缀标头中的代码放在哪里,没有代码应该放入前缀标头中。将您的导入文件放入需要它们的文件中。将您的定义放入他们自己的文件中。把你的宏......无处。停止编写宏,除非没有其他方法(例如当您需要时__FILE__)。如果您确实需要宏,请将它们放在标题中并包含它。
__FILE__
前缀标头对于整个系统中几乎所有东西都使用的巨大的东西(如Foundation.h)是必需的。如果你有如此庞大而无处不在的东西,你应该重新考虑你的架构。前缀标头使代码重用变得困难,并且如果列出的任何文件都可以更改,则会引入细微的构建问题。避免使用它们,直到您遇到严重的构建时间问题,您可以证明使用前缀标头可以显着改善。
Foundation.h
在这种情况下,您可以创建一个并将其传递给 clang,但它是一个好主意的情况非常罕见。
编辑:对于您在所有视图控制器中使用的 HUD 的具体问题,是的,您绝对应该将其导入到实际使用它的每个视图控制器中。这使得依赖关系清晰。当您在一个新项目中重用您的视图控制器时(如果您构建好控制器,这很常见),您将立即知道它需要什么。这对于类别 尤其 重要,如果它们是隐式的,这会使代码很难重用。
PCH 文件不是用来摆脱列表依赖的。您仍然应该像 Xcode 模板那样导入UIKit.h或根据需要导入。Foundation.hPCH 的原因是在处理非常大的标头(例如在 UIKit 中)时缩短构建时间。
UIKit.h