我有兩個對象,它們都是視圖控制器。第一個(我稱之爲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