如何防止循环引用

时间:2014-12-22 20:21:25

标签: ios objective-c cocoa cocoa-touch

我遇到循环引用问题。假设我有以下层次结构:ViewControllerA和两个对象ObjBObjC(这两个对象是基于UIVIew的{​​{1}}上可见的对象。假设我创建了一个类别ViewControllerA,所有3个对象都使用此类别,所有这些对象都有类文件。我是否必须对所有3个对象的类或UIView+SuperExtensions上的#import "UIView+SuperExtensions.h"进行操作。

我现在正在导入所有3个对象,并且遇到了很多循环引用问题。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

应该在任何地方导入标题,你在哪里使用它。特别是你不应该依赖导入的标题导入另一个标题。

热门舔的补充:

// Inside a .m
#import "Subclass.h"
#import "BaseClass.h"
// You should import BaseClass.h, if you use its contents, even you can be pretty sure that Subclass.h already imported it

如果这导致循环引用,则还有另一个问题。在大多数情况下,一个人导入了另一个标题中的标题,而不是使用前向声明女巫@class