Декларация протокола не найдена - PullRequest
1 голос
/ 20 марта 2012

Итак, у меня есть один класс 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

Я синтезировал делегат в реализации

Я пытаюсь получить доступ к протоколу в FirstViewController.h:

 #import "CommentViewController.h"
 @interface FirstViewController : UIViewController <CommentViewControllerDelegate>

А при имплантации FirstViewController:

 - (void)commentViewControllerDidFinish:(CommentViewController *)controller {
 [self dismissModalViewControllerAnimated:YES];
 }

В этой строке появляется ошибка:

@interface FirstViewController : UIViewController <CommentViewControllerDelegate>

Ошибка: Cannot find protocol declaration for 'CommentViewControllerDelegate'; did you mean 'UISplitViewControllerDelegate'?

Я что-то упустил? У меня всегда проблемы с протоколами и делегатами.

1 Ответ

7 голосов
/ 20 марта 2012

У вас есть цикл в ваших включаемых файлах.

Удалите эту строку из CommentViewController.h:

#import "FirstViewController.h"

На нее нет ссылки в этом заголовочном файле, и если бы она была, вы могли быПроще говоря:

@class FirstViewController;

вместо включения всего файла.

...