在哪里#include?

时间:2010-05-04 12:51:38

标签: iphone objective-c cocoa-touch

在我以前的应用程序中,我已经#importing到我需要的* .h文件中。我之前没有真正考虑过这个问题,因为我没有遇到任何问题,但是今天我发现了一些让我想到的东西,也许我应该#import-ing到我的 .m文件中并在必要时使用@class在标题中( .h)任何人都可以对它应该完成的方式或最佳实践发光吗?

加里

2 个答案:

答案 0 :(得分:4)

在任何源文件中,仅导入使该单个文件对编译有效所需的内容。 @class也比导入另一个类的头更好,因为你加载的越少,你编译的就越少。

答案 1 :(得分:3)

根据经验,可以在头文件中使用@class,在.m文件中使用#import。如果你从编译器那里做错了,你会得到一个错误:)

基本上,如果您只是引用要使用的类,而不是该类的任何细节,那么@class就是所需要的。它告诉编译器“我将在这里使用这个类 - 你不需要了解它,除了它是有效的”。 (然后编译器知道为它保留一个指针)。

如果你要引用类中的任何属性/方法,编译器会开始抱怨(因为它没有足够的关于类的信息)所以在这些情况下它希望你导入文件({{ 1}})以便为编译器提供类特定。

希望这有帮助