當我嘗試編譯從前一個開發人員繼承的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可能會搞砸嗎?
看起來你可能在EINetIPhone_Prefix.pch中有語法錯誤,你能發佈該文件的內容嗎? – kubi 2010-06-07 21:24:52
我也這麼認爲。你有沒有做一個清潔的目標? – 2010-06-07 23:33:24
請參閱編輯我的前綴文件。清理所有目標似乎沒有幫助:( – 2010-06-08 15:38:47