我有两个对象,它们都是视图控制器。第一个(我称之为viewController1)声明一个协议。第二个(我不会惊讶地命名viewController2)符合这个协议。找不到协议声明
Xcode是给我的生成错误:“无法找到viewController1协议声明”
我已经看到了关于这个问题的各种问题,我敢肯定这是一个循环的错误的事,但我就是“T看到它在我的情况...以下
代码..
viewController1.h
@protocol viewController1Delegate;
#import "viewController2.h"
@interface viewController1 {
}
@end
@protocol viewController1Delegate <NSObject>
// Some methods
@end
viewController2.h
#import "viewController1.h"
@interface viewController2 <viewController1Delegate> {
}
@end
最初,我有以上,该协议声明在viewController1导入行。这阻止了该项目的建设。在搜索结果后,我意识到了这个问题,并转换了两条线。我现在得到一个警告(而不是一个错误)。该项目建立良好,实际运行完美。但我仍然觉得必须有什么错误才能给予警告。
现在,据我所知,当编译器访问viewController1.h时,它看到的第一件事就是协议的声明。然后它导入viewController.h文件并且看到它实现了这个协议。
如果以相反方式编译它们,它首先会查看viewController2.h,它会做的第一件事是导入viewController1.h,其中第一行是协议声明。
我错过了什么吗?
我不能......(我应该说)... viewController1确实需要能够呈现一个viewController2。 – 2012-04-15 09:39:16
这里有'@class viewController2;'指令。在'viewController1.m'中导入头文件。 – Costique 2012-04-15 09:41:01
我更新了答案来说明这一点。 – Costique 2012-04-15 09:44:23