2012-02-16 31 views

回答

1

这是可能的,创建另一个头,其中包括所有其他的包括,包括只有它:

COMMON.H:

#include <somefile.h> 
#include <anotherFile.h> 
#include <andAnotherOne.h> 
在对方文件

,你只需要:

#include "common.h" 

虽然我会认为这是一个坏主意,因为你公开的内容比你需要的每个类都多,并且违反了程序中模块的分离。另外,预处理器需要更多的工作,也许还需要编译器。

+0

感谢您的回复...真的有用 – Pinky 2012-02-16 08:36:49

1

这是究竟如何:

#import <SomeFramework/SomeFramework.h> 

工作。

会有开销 - 可能有更多的文件要读取,并且会有更多的文件需要解析。是否可接受的开销是由您来决定的。可以开发ObjC程序,使其具有非常小的物理依赖性,并且使用#import可以节省大量冗余重新打开的标头(可能多次包含标头)。因此,如果正确完成,影响将非常小。

更大的问题可能是弄清楚如何避免将其他框架暴露给客户端。从你的头

#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线从VS的lib的依赖200头......

我经常这样做,你的提议从依赖关系的变化隔离客户端的东西。他们不希望每个班级都有个别的问题,并且认为随着时间的推移,他们只想使用图书馆/软件包而不用麻烦。

+0

感谢贾斯汀你的回复,嗯,建议不要创建 – Pinky 2012-02-16 08:39:43

+0

这取决于 - 我提到“我经常做你正在提出的......”。具体来说,当为其他人创建一个库时,当这是一个逻辑上的标题组(例如一个库)时,或者当您维护较大的代码库时,这样做通常是有意义的。在这种情况下,分析内容可以给你一个关于图书馆结构的好主意(例如,它应该被分开的时候可能会变得清晰)。当然,如果使用不当,它也可能被滥用,并且真正将编译时间发送到屋顶。 – justin 2012-02-16 08:59:34

相关问题