最佳实践和基本原理:#import in .m或.h

Rud*_*udi 7 objective-c

将#import语句放在.m而不是Objective-C中的.h文件中的理由是什么?

Apple示例将它们捆绑在.m文件中,除非在接口声明(.h)中使用了对象,并且docs声明这是正确的("在接口文件中,您首先导入任何所需的头文件.")

令我困惑的是.h应该定义实现的接口,所以#import逻辑上会转到.h文件而不是.m.

Chu*_*uck 11

如果将所有#imports放在头文件中,则没有两个类可以相互依赖,因为文件无法导入导入它的文件.#import另一方面,如果你把它放在实现文件中,问题就会消失.


NSR*_*der 8

在任何源文件中,您只应#import使您的文件对编译有效.请记住,您的标题可能被其他类使用,因此您希望尽可能使它们变得轻量级.这也是为什么最好使用@class来表示除超类之外的类的前向声明.