我遇到循环引用问题。假设我有以下层次结构:ViewControllerA
和两个对象ObjB
和ObjC
(这两个对象是基于UIVIew
的{{1}}上可见的对象。假设我创建了一个类别ViewControllerA
,所有3个对象都使用此类别,所有这些对象都有类文件。我是否必须对所有3个对象的类或UIView+SuperExtensions
上的#import "UIView+SuperExtensions.h"
进行操作。
我现在正在导入所有3个对象,并且遇到了很多循环引用问题。这样做的正确方法是什么?
答案 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
。