2013-04-30 4 views
0

이 문제가 발생합니다. 나는 다음과 같은 선언 할 때"XXXX"에 대한 프로토콜 선언을 찾을 수 없습니다.

#import <UIKit/UIKit.h> 

@protocol MapSettingsViewDelegate 

- (void)settingsDidUpdate:(BOOL)scheme; 

@end 

@interface MapSettingsViewController : UIViewController 

@property (nonatomic, assign) id <MapSettingsViewDelegate> delegate; 
@property (nonatomic, strong) IBOutlet UINavigationBar *navBar; 
@property (nonatomic, strong) IBOutlet UINavigationItem *titleItem; 
@property (nonatomic, strong) IBOutlet UITableView *TableView; 

- (id)init; 
- (IBAction)saveAction:(id)sender; 

@end 

: 나는 다음과 같은 .H 파일이

Cannot find protocol declaration for 'MapSettingsViewDelegate' 

내가 대표의 같은 종류가 있습니다

@interface MapViewController : UIViewController <MapSettingsViewDelegate> 

컴파일러에서 다음 메시지와 함께 불평 같은 프로젝트에있는 다른 파일의 선언으로 결함없이 컴파일됩니다. 나는 지난 4 시간 동안 내가 뭘 잘못하고 있는지 알아 내려고 노력했다. 프로젝트를 청소해도 아무런 효과가 없습니다.

+2

.h를 가져 왔습니까? – sidyll

+0

@ 에두아르도 마우로, 도와 드리려고합니다. MapViewController.h 및 MapSettingsViewController.h 파일의 # import를 모두 알려주십시오. –

+0

@ThilinaHewagama는 모두 MapSettingsViewController를 포함합니다. 그냥 UIKit. MapViewController에는 "MapSettingsViewController.h" "PlacemarkSelectionViewController.h" "PopoverView.h" –

답변

-2

MapSettingsViewController.h 파일 가져 오기

+0

물론 파일을 가져옵니다. –

0

문제가 해결되었습니다. As suggested in this answer, 다른 이름으로 새 클래스를 만들고 이전 클래스의 코드를 모두 복사했습니다. 완벽하게 일했다. Xcode가 무언가를 놓친 것 같습니다.

0

전처리 프로그램 문제가 발생합니다. 두 수업 모두 서로 가져옵니다. 아래에 나와있는 것처럼 프로토콜 선언 아래에 @class를 추가하여이 문제를 해결할 수 있다고 생각합니다. #import "mapViewController.h"줄을 MapSettingsViewController.m 파일로 이동하십시오. @class는 클래스 내용을 다른 곳 (.m 파일에)에 포함 할 것임을 컴파일러에 알립니다.

MapViewController.h 클래스 파일의 맨 위에는 평소처럼 #import "MapSettingsViewController.h"를 포함 할 수 있습니다. 희망이 도움이됩니다. 이전에 같은 문제가 발생했습니다.

#import <UIKit/UIKit.h> 

@protocol MapSettingsViewDelegate 

- (void)settingsDidUpdate:(BOOL)scheme; 

@end 

@class MapViewController 

@interface MapSettingsViewController : UIViewController 

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