“无法找到<class>”</class>的接口声明

时间:2012-06-13 20:40:24

标签: objective-c objective-c-category

Screenshots

我很难在我上课时设置一个类别。根据我的阅读,Objective-C允许您在任何类上创建一个类别,而不仅仅是闭源类。 (老实说,任何其他方式都没有意义。)

当然我可以将类别消息添加到实际的类文件中,但我希望将它们分开(因为该类别是一种非常普遍使用的类的特殊用法)。我想分享这个课程,但是保持这个类别是私有的...无论如何。

我已经删除了该类别,只是展示了手头的问题。我(当前)在第一类消息上得到四个错误。我在该行上收到的错误数量与引用的次数成正比,但并不是偶数上升。有谁知道这可能导致什么?

1 个答案:

答案 0 :(得分:6)

您的Resources.h文件由ByteCollection.h导入,导入ByteCollection + words.h。因此,当ByteCollection + words.h导入ByteCollection.h时,这会导致循环依赖†。打破循环依赖关系的最简单方法是将其中一个导入移动到实现文件而不是标头。看起来这应该可以使用Resources.h。

†您可能想知道,如果您有循环依赖,为什么会出现问题?好吧,#import命令只是文本上包含你指定的文件,就像你复制粘贴一样。它还智能地不包含两次文件,因为这会产生重复的代码。但这意味着当文件A说“我希望文件B在我之前”而文件B说“我想要文件A在我之前”时,其中一个会失望,这会导致像你来到这里。