我正在帮助一个 iOS 项目,其中包含许多 AppDelegate 中许多不同类共有的方法和定义。因此,在每个类中,在 .h 文件中,我使用 #import "AppDelegate.h"。这工作正常,直到我需要访问已经将 AppDelegate 导入另一个导入 AppDelegate 的类中的一个类。此时,我收到 AppDelegate 的重复接口定义错误。
好的,这看起来很公平。我已经将 AppDelegate 导入到我正在导入的文件中,因此 AppDelegate 正在从两个不同的地方导入。所以我删除了 AppDelegate 行,一切都很好。
但是当我需要导入两个都需要导入 AppDelegate 的类时会发生什么?
我有一个非常具体的问题,我正试图解决这个问题,我知道它是由与此有关的某些事情引起的,但我不确定是什么。所以我希望我能弄清楚我应该如何处理这种导入,并将其他所有内容整理出来,并希望这能解决我的问题。因此,更具体地说:
我有 ClassA.h、ClassB.h 和 ClassC.h。都有#import“AppDelegate.h”。当我需要在 ClassA 中使用 #import "ClassB.h" 时,我会从 ClassA 中删除 #import "AppDelegate.h" 行。一切顺利。但是,如果我还需要#import "ClassC.h" 到 ClassA 中,但 ClassB 和 ClassC 需要有 #import "AppDelegate.h",会发生什么?
编辑:
我在一个干净的项目中尝试了上面描述的确切场景,它构建得很好,所以还有其他东西在起作用。但是我可以肯定地说,这个问题之前在这个项目中出现的时候,是一个重复的AppDelegate接口定义,当我删除#import“AppDelegate.h”这一行时,错误消失了,我仍然可以通过其他导入的文件访问 AppDelegate.h 方法和枚举。