2011-04-18 51 views
1

我一直在iOS項目工作一段時間,但現在我有一個錯誤,這真讓我困惑,只要我無法修復它我甚至不能編譯該項目,所以我需要一些認真的幫助!同樣的錯誤我所有的標題 - 錯誤:預期'='...'協議'之前

這一切都始於一個:

錯誤:預期 '=', ' ' ';', 'ASM' 或' 屬性' '協議'

在PHCluesListViewController.h前。這個班長期以來一直沒有改變,而我在錯誤時刻所做的工作與這個班級毫無關係。

這是什麼樣子:

#import <UIKit/UIKit.h> 

@protocol PHCluesListViewControllerDelegate; 

@class PHClueListTableViewController; 

@interface PHCluesListViewController : UIViewController { 

    IBOutlet PHClueListTableViewController *clueListTableViewController; 

    id <PHCluesListViewControllerDelegate> delegate; 
} 

- (void)mapDelegate; 

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

@end 

@protocol PHCluesListViewControllerDelegate 

- (void)mapUp:(PHCluesListViewController *)controller; 

@end 

有沒有語法錯誤並沒有什麼錯,在這方面無論是代碼。後來我會知道,如果你從頭文件中拿走所有的代碼,那麼錯誤會移動到另一個隨機頭文件,或者如果你要導入另一個頭文件,錯誤將會移到這個頭文件中。

我試着重新啓動xcode,將項目移動到新的項目中,將代碼重寫爲新文件並將該項目移動到另一個xcode版本的計算機 - 但沒有運氣。

我可以在我的電腦上運行其他xcode項目。

在我看來,xcode正試圖以某種不需要的方式在這個特定的項目中編譯我的頭文件。

幫助將不勝感激,先謝謝了!

----------編輯! ----------

感謝您的快速回復!儘管我找到了答案。

錯誤是一個「d」寫在一個完全不同的文件/類實現的界限。偶然發現......

如果其他人會發生類似的情況;檢查@end之後或@interface/@實現之前寫入的信件或任何其他會「切斷常用語法的邊緣」的信件。

很難找到這樣的錯誤的原因,我有點驚訝,我發現它在80個文件(只有4.5小時)中如此之快。

祝你好運!

+0

如果這影響項目/目標中的每個源文件,請檢查相應的前綴頭(.pch)。 – 2011-04-18 22:33:47

+0

嘗試使用鏗鏘編譯它,如果你不是;它的錯誤信息更有用(以我的經驗)。 – Wevah 2011-04-18 22:47:52

回答

0

您正在定義@protocol PHCluesListViewControllerDelegate兩次。另外,如果需要實施mapUp,則可能需要添加@required關鍵字。

+3

他沒有定義兩次協議 - '@protocol PHCluesListViewControllerDelegate;'是一個前向聲明。另外,'@ required'是默認的,所以這個方法已經是必需的了。 – 2011-04-18 22:45:49

相關問題