5

截图

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

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

我已经剥离了类别,只显示手头的问题。我(目前)在第一类消息上收到四个错误。我在那条线上收到的错误数量与它被引用的次数成正比,但它并不是均匀上升的。有谁知道这可能是什么原因造成的?

4

1 回答 1

6

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

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

于 2012-06-13T21:21:58.837 回答