编译错误:无法找到协议声明

时间:2012-07-24 16:09:58

标签: objective-c xcode

我正在尝试从一本书中学习Objective-C,并在尝试使用Xcode进行练习时遇到以下错误(箭头表示问题所在地)。

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

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

上面的代码导致错误:“无法找到'CreateCardDelegate'的协议声明。但我正在导入”CreateCardViewController.h“,我声明了:     @property(nonatomic,assign)id cardDelegate; 所以不知道问题是什么......

浏览了一些帖子后我怀疑它可能是由于循环#import依赖?但如果是这种情况,那么我不确定如何纠正这个错误。如果您有任何建议,请解释并记住我是Objective-c的新手。

2 个答案:

答案 0 :(得分:2)

您没有正确定义

@protocol CreateCardDelegate
  ....
@end

CreateCardViewController.h文件中。请查看该定义并发布相关代码以获取更多帮助。

答案 1 :(得分:1)

您需要在某处声明CreateCardDelegate协议。这是一个协议声明的例子(在.h文件中)。

@protocol MyClassDelegate <NSObject>

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

@end

在您的情况下,您需要在这些头文件中的某处@protocol CreateCardDelegate并将其导入.m文件。你呢?