2012-07-24 74 views
0

我試圖從一本書學習Objective-C,並嘗試通過Xcode中的練習(箭頭表示問題的地方)工作時遇到以下錯誤。編譯錯誤:無法找到協議聲明

#import <UIKit/UIKit.h> 
#import "FlashCard.h" 
#import "CreateCardViewController.h" 

--> @interface FlashCardsViewController : UIViewController <CreateCardDelegate> { 

上面的代碼導致錯誤:我在那裏宣佈CreateCardViewController.h‘「無法找到‘CreateCardDelegate’協議聲明,但我進口。’: @property(非原子,分配)ID cardDelegate; 所以不知道問題是什麼...

瀏覽了幾個帖子後,我懷疑它可能是由於循環#import依賴?但如果是這樣的話,我不知道如何糾正這個錯誤如果您有任何建議,請解釋並記住我是新手objective-c。

+0

可以請你發表更多的代碼,這樣我可以解釋一下嗎?請顯示CreateCardViewController.h的實現 – Fab1n 2012-07-24 16:16:01

+0

CreateCardViewController.h中是否有@protocole CreateCardDelegate? – Canopus 2012-07-24 16:17:16

+0

這似乎不是關於循環依賴關係,但如果您想知道如何在將來避免它們,請閱讀http://stackoverflow.com/a/7428777/412916 – Jano 2012-07-24 16:30:06

回答

2

你是不是在你的CreateCardViewController.h文件中正確

@protocol CreateCardDelegate 
    .... 
@end 

定義。請查看該定義併發布相關代碼以獲取更多幫助。

1

您需要在某處聲明CreateCardDelegate協議。這是一個協議聲明的示例(在.h文件中)。

@protocol MyClassDelegate <NSObject> 

- (void)myClass:(MyClass *)myClass someEventOccured:(NSInteger)value; 
- (void)myClass:(MyClass *)myClass someOtherEventOccured:(NSInteger)value; 

@end 

你的情況,你需要有一個@protocol CreateCardDelegate某處的頭文件,並將其導入您的.m文件。你做?

相關問題