2011-06-08 136 views
2

我创建了一组文件(基本上是一个库)来完成我将在iOS应用中使用的任务。该库有一个公共头文件,用于导入所有其他头文件,以便使用此库的代码只需导入一个头文件。但是,该公共头还定义了大多数其他文件内部使用的枚举,因此这些文件需要导入公共头。这会产生循环依赖关系,并且我得到与未被识别的符号有关的构建错误。处理Objective-C#import依赖关系

什么是正确的方式来处理#import s在这种情况下,其中一个公共头文件使一组库对象可供公众使用,但依赖文件也需要一个枚举(实际上加上一个协议)在公共头文件中定义?

回答

3

将类型定义提取到不同的标题中。

否则,你将不得不使用include guards - 但这真的只是围绕着设计缺陷。

+0

好的。需要做什么的条件是什么?循环进口总是会导致问题?还是有其他具体情况需要将事情分解出来以避免混淆编译器? – jrdioko 2011-06-09 17:05:47

+0

@jrdioko:是的,这是通知进口。它们在Objective-C中本质上是有问题的。 – Chuck 2011-06-09 17:27:28