2011-11-19 83 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\" ]; 

我删除了错误的“\”,吃了最后一个报价它的工作。