如果我有四个.h / .m文件对
file1.h
file2.h
file3.h
file4.h
我在file4中使用file1.h,file2.h和file3.h功能,这些头文件是否应该包含在file4.h或file4.m中?
答案 0 :(得分:3)
如果可能,请在.m文件中。您可能必须在.h文件中转发声明类,如:
@class AClassIImportInDotMFile;
如果B类是A类的子类,则需要在B类的.h文件中导入A类的.h文件。
答案 1 :(得分:1)
我认为其他file4.h
文件将使用.m
。如果是,请仅在file4.h
中包含file4.h
中使用的内容,file4.cpp
中包含其余内容。这将减少大量的包含数量,包括file4.h
将不会使用无用的额外标题。
当所需.h
个文件的数量开始变得不方便时,您可以将它们分组到主题标题中。例如,topic1.h
可能包括file1.h
和file2.h
,但不包括file3.h
。
答案 2 :(得分:0)
如果我计划在属性声明中使用它们的类,我通常会将其他标头导入当前头文件。但是,如果类相互引用,这可能会造成一些破坏。
如果是这种情况,那么您需要在.m文件中包含标题,以便可以在类中使用它们,但是对于这些项目的任何外部访问,您可以在自定义类的位置使用id。当你用其他参考方法获取它们时,将它们抛出。
如果我包含AppDelegate.h然后引用app delegate中的其他类,我会遇到这个问题 这样做的原因是我希望在app委托中包含对当前对象的引用,但该类还使用app委托来访问其他类。在这种情况下,我将在AppDelegate.h中包含Classes,并在该类的m文件中包含AppDelegate.h。
我希望这是有道理的。