我有两个对象,它们都是视图控制器。第一个(我称之为 viewController1)声明了一个协议。第二个(不出所料,我将其命名为 viewController2)符合此协议。
XCode 给我一个构建错误:“找不到 viewController1 的协议声明”
我已经看到有关此主题的各种问题,并且我确定它与循环错误有关,但在我的情况下我看不到它......
下面的代码..
viewController1.h
@protocol viewController1Delegate;
#import "viewController2.h"
@interface viewController1 {
}
@end
@protocol viewController1Delegate <NSObject>
// Some methods
@end
视图控制器2.h
#import "viewController1.h"
@interface viewController2 <viewController1Delegate> {
}
@end
最初,我在 viewController1 中的导入行位于协议声明的上方。这完全阻止了该项目的建设。在SO上搜索后,我意识到了问题,并把两条线调换了。我现在收到警告(而不是错误)。该项目构建良好,实际上运行完美。但我还是觉得一定有什么不对的地方要警告。
现在,据我所知,当编译器到达 viewController1.h 时,它首先看到的是协议的声明。然后它导入 viewController.h 文件并看到它实现了这个协议。
如果它以相反的方式编译它们,它会首先查看 viewController2.h,然后它会做的第一件事是导入 viewController1.h,其中第一行是协议声明。
我错过了什么吗?