放置模块@imports的好地方是什么?

时间:2014-03-07 13:53:54

标签: objective-c xcode5

所以我使用最新Xcode引入的新@import模块语法 - 我仍然想知道放置它们的最佳位置。之前,我会将库导入和非常重要的类别放在.pch文件中,但现在不再需要了(至少不适用于本机框架)。我的第一个想法是创建一个modules.h文件并在那里进行所有导入,然后在modules.h中包含AppDelegate文件 - 但这似乎不对。此外,您首先需要导入它也没有意义,因为您可能会在不同的地方使用它。

这实际上是一个关于“最佳实践”的问题 - 当然 - 有点主观。但我认为这会影响很多人和整个项目结构。所以请分享您的解决方案。

1 个答案:

答案 0 :(得分:2)

听起来你之前没有做过最好的方式,一般来说,你想要在任何时候都可用的符号很少。出于几个不同的原因: 不太可能使用具有相同名称但不同值或类型的符号出错...并且由于编译器必须将较少的垃圾导入每个编译单元的原因。

我不是@import如何改变预处理和编译的编译器语义的专家,但我怀疑你仍然应该尽可能地将事物导入到尽可能接近它们的位置。

我通常不会将任何类的标头导入到另一个类的.h文件中。 在.h中,我将使用@class SomeCLass转发声明任何类,并且只包含足够的标题以满足我用作ivar / properties的c / c ++类型。唯一的例外是,如果我需要为协议包含超类的标头或另一个.h。

其余的包括进入.m

我喜欢让我的pch非常简洁,但如果你有一些实用程序类别或广泛使用的库,你可以包含那里的东西,我倾向于......但是在一个较小的项目中你可能不会遇到问题...你会遇到包含数百个源文件的项目中的索引问题,特别是如果你有一些Objective-C ++单元。这将最终损害代码完成和实时语法检查。