2010-06-07 120 views
0

當我嘗試編譯從前一個開發人員繼承的iPhone應用程序的代碼時,我遇到了這個問題。我在幾個論壇上探討過,似乎罪魁禍首可能是某個地方的通告#import。無法找到'UIResponder'的接口聲明

首先 - 是否有任何簡單的方法來查找是否是這種情況/找到循環所在的文件?

第二 - 它絕對有可能這不是問題。這是完全錯誤(截斷的文件路徑,以便它更易於查看這裏):

在文件中包含

 from [...]/Frameworks/UIKit.framework/Headers/UIView.h:9, 
       from [...]/Frameworks/UIKit.framework/Headers/UIActivityIndicatorView.h:8, 
       from [...]/Frameworks/UIKit.framework/Headers/UIKit.h:11, 
       from /Users/wbs/Documents/EINetIPhone/EINetIPhone_Prefix.pch:13: 
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:15: error: expected ')' before 'UIResponder' 
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:17: error: expected '{' before '-' token 
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:42: warning: '@end' must appear in an @implementation context 
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:51: error: expected ':' before ';' token 
[...]/Frameworks/UIKit.framework/Headers/UIResponder.h:58: error: cannot find interface declaration for 'UIResponder' 

正如你所看到的,也有其他錯誤沿着這一個。這些似乎是簡單的語法錯誤,但是,它們出現在Apple的UIKit文件(不是我自己的)中,所以我嚴重懷疑Apple的代碼是否真的產生了這些錯誤。

我很難過如何解決這個問題。如果任何人有任何想法,我可以嘗試或方式/地點,我可以得到關於這個問題的更多信息,我真的很感激它。我對Obj-C和iPhone編碼非常陌生。

編輯:

剛試過全部清除目標 - 它實際上找到了一個額外的警告,但仍具有與上述同樣的錯誤。

我EINetIPhone_Prefix.pch:

// 
// Prefix header for all source files of the 'EINetIPhone' target in the 'EINetIPhone' project 
// 
#import <Availability.h> 

#ifndef __IPHONE_3_0 
#warning "This project uses features only available in iPhone SDK 3.0 and later." 
#endif 


#ifdef __OBJC__ 
    #import <Foundation/Foundation.h> 
    #import <UIKit/UIKit.h> 
#endif 

編輯#2:

有趣的是,我想從我的前綴文件中刪除UIKit的進口,並把它變成需要它的具體.m文件。我仍然得到相同的錯誤,但現在它們出現在每個試圖導入UIKit.h的文件中。 UIKit可能會搞砸嗎?

+0

看起來你可能在EINetIPhone_Prefix.pch中有語法錯誤,你能發佈該文件的內容嗎? – kubi 2010-06-07 21:24:52

+0

我也這麼認爲。你有沒有做一個清潔的目標? – 2010-06-07 23:33:24

+0

請參閱編輯我的前綴文件。清理所有目標似乎沒有幫助:( – 2010-06-08 15:38:47

回答

0

執行「清潔」(下「構建」菜單),確保檢查「還刪除預編譯頭」。