未找到协议声明

Chr*_*ris 1 delegates protocols objective-c

所以,我有一个类CommentViewController.h中,我有

#import "FirstViewController.h"

@protocol CommentViewControllerDelegate;

@interface CommentViewController : UIViewController {
id <CommentViewControllerDelegate> delegate;
}

 @property (nonatomic, assign) id <CommentViewControllerDelegate> delegate;

- (IBAction)submit:(id)sender;

-(IBAction)cancel:(id)sender;

 @end

@protocol CommentViewControllerDelegate
-(void)commentViewControllerDidFinish:(CommentViewController *)controller;
@end
Run Code Online (Sandbox Code Playgroud)

我在实现中合成了委托

我尝试访问协议FirstViewController.h:

 #import "CommentViewController.h"
 @interface FirstViewController : UIViewController <CommentViewControllerDelegate>
Run Code Online (Sandbox Code Playgroud)

并在植入FirstViewController:

 - (void)commentViewControllerDidFinish:(CommentViewController *)controller {
 [self dismissModalViewControllerAnimated:YES];
 }
Run Code Online (Sandbox Code Playgroud)

错误出现在这一行:

@interface FirstViewController : UIViewController <CommentViewControllerDelegate>
Run Code Online (Sandbox Code Playgroud)

错误: Cannot find protocol declaration for 'CommentViewControllerDelegate'; did you mean 'UISplitViewControllerDelegate'?

我错过了什么吗?我总是遇到协议和代理问题.

tro*_*foe 7

您的包含文件中有一个循环.

从以下行中删除此行CommentViewController.h:

#import "FirstViewController.h"
Run Code Online (Sandbox Code Playgroud)

它没有在头文件中引用,如果是,你可以简单地把:

@class FirstViewController;
Run Code Online (Sandbox Code Playgroud)

而不是包括整个文件.