2011-11-19 41 views
9

在我的對象@interface的開頭處,程序「」中的所有突然Xcode給我一個錯誤「意外的@」。程序(XCode)中出乎意料的'@'

這一堆我的對象是之前工作的情況發生......

下面是一個例子(在註釋錯誤)

#import <UIKit/UIKit.h> 
#import "ONCOChordDiamond.h" 
@interface ONCOChordView : UIView //// unexpected '@' in program 
{ 
    NSMutableArray* chordDiamonds;  
    NSUInteger  diamondWidth, diamondHeight; 
} 

@end        /////unexpected '@' in program' 

那麼,爲什麼Xcode中給我這個錯誤?這看起來像一個錯誤。

回答

5

您包括未編譯成目標C.

+0

我在嘗試#import Objective-C++(.mm)實現文件中的NSString-categorty的頭文件時遇到此問題。 它工作正常,但是我將#import行移動到相應的頭文件後。 這是爲什麼? – arri

5

檢查在ONCOChordDiamond.h文件語法錯誤的文件頭。如果您在Xcode中運行產品>分析,它們可能會突出顯示。

導入帶有語法錯誤的文件可能會導致編譯器無法正確解析當前文件,即使當前文件的語法是正確的。

12

我懷疑你仍然有問題,但如果你是檢查頭文件。我在課堂上從網上粘貼代碼,引號不是標準「」。這些商標用開頭報價和結束報價風格化,因爲它來自網頁。重新調整引號可以修復它。

+0

感謝您發表此評論;我在幾個小時內遇到了類似的問題,你的評論解決了我的問題。謝謝。 –

0

當遇到NSString文字問題時,請根據需要檢查是否使用了引號。

(eg. @"myString") 

如果您發現您的NSString的語法顏色不正確,則可以檢查以下違規字符。

" (QUOTATION MARK) 
″ (DOUBLE PRIME) 
「 (LEFT DOUBLE QUOTATION MARK) 
」 (RIGHT DOUBLE QUOTATION MARK) 
0

對於它的價值,我有這個問題,並且被識別的違規行遠沒有任何字符串文字。

確實請注意,下面的一些行顏色奇怪(同樣,沒有字符串文字的責怪),所以我測試了在犯罪行之前的代碼中僞造字符串文字。

NSString *whatever = @""; 

顯然,它說服了編譯器該行不是搞砸了,所以再編譯就好了,從無怨言。在構建之後,我能夠刪除僞造的字符串變量並繼續我的生活。

0

我有一個類似的問題,這是因爲最後的報價越來越逃脫。我正在使用帶終止「\」的多行字符串來消化行尾字符。

[ string appendFormat:@"\n\ 
     vec4 position;\n\ 
     vec4 inputTextureCoordinate;\n\" ]; 

我刪除了錯誤的「\」,吃了最後一個報價它的工作。