2012-07-24 54 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文件。你做?

相关问题