想将我项目中的所有头文件分组到一个类中,这样我就不需要在每个类中导入它而只需要一个头就足够了,
如果可能的话有任何开销吗?
答案 0 :(得分:1)
可以创建另一个包含所有其他包含的标题,并仅包含它:
COMMON.H:
#include <somefile.h>
#include <anotherFile.h>
#include <andAnotherOne.h>
在每个其他文件中,您只需要:
#include "common.h"
虽然我认为这是一个坏主意,因为你暴露了比你需要的更多的每个类,并且你违反了程序中模块的分离。此外,预处理器需要更多工作,也许还需要编译器。
答案 1 :(得分:1)
这正是如此:
#import <SomeFramework/SomeFramework.h>
操作。
会有开销 - 可能有更多文件要阅读,并且还有更多要解析的文件。这是否是可接受的开销是由您决定的。
ObjC程序可以被开发为具有非常小的物理依赖性,并且使用#import
,您可以节省大量的标题冗余重新打开(vs可以多次包含的标题)。因此,如果正确完成,影响将非常小。
更大的问题可能是弄清楚如何避免将其他框架暴露给您的客户。
#import <SomeFramework0/SomeFramework0.h>
#import <SomeFramework1/SomeFramework1.h>
#import <SomeFramework2/SomeFramework2.h>
#import <SomeFramework3/SomeFramework3.h>
#import <SomeFramework4/SomeFramework4.h>
#import <SomeFramework5/SomeFramework5.h>
来自标题的200行与来自lib依赖项的200个标题...
我经常按照您的建议,将客户端与依赖项的更改隔离开来。他们不希望单独#include
每个班级并保持随着时间的推移而移动 - 他们只是想毫不费力地使用库/包。