需要在一个类中包含所有头文件 - ios5

时间:2012-02-16 07:50:54

标签: objective-c ios5

想将我项目中的所有头文件分组到一个类中,这样我就不需要在每个类中导入它而只需要一个头就足够了,

如果可能的话有任何开销吗?

2 个答案:

答案 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每个班级并保持随着时间的推移而移动 - 他们只是想毫不费力地使用库/包。