程序中意外的'@'(XCode)

时间:2011-11-19 23:23:53

标签: objective-c xcode cocoa-touch nsobject

所有突然的Xcode在我的对象@interface开头的程序“中给我一个错误”意外'@'。

这发生在以前工作的一堆我的对象中......

这是一个例子(评论中有错误)

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

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

那为什么Xcode会给我这个错误?这似乎是一个错误。

6 个答案:

答案 0 :(得分:12)

我怀疑你是否还有这个问题,但是如果你检查头文件的话。我在网上粘贴了代码中的代码,引号不是标准的“”。标记用开头报价和结束报价风格化,因为它来自网页。重新打印引号标记会修复它。

答案 1 :(得分:5)

您要包含未编译为Objective C的文件中的标题。

答案 2 :(得分:5)

检查ONCOChordDiamond.h文件中的语法错误。如果您运行Product&gt;可能会突出显示它们。在Xcode中分析。

导入语法错误的文件可能导致编译器无法正确解析当前文件,即使当前文件的语法正确也是如此。

答案 3 :(得分:0)

当遇到NSString文字的这个问题时,请检查您是否已根据需要使用了引号。

 (eg. @"myString")

如果您发现NSStrings的语法颜色不正确,您可能会检查以下有问题的字符。

" (QUOTATION MARK) 
″ (DOUBLE PRIME) 
“ (LEFT DOUBLE QUOTATION MARK) 
” (RIGHT DOUBLE QUOTATION MARK)

答案 4 :(得分:0)

对于它的价值,我遇到了这个问题,并且识别出的违规行远不及任何字符串文字。

确实注意到以下某些行被奇怪地着色(再次,没有字符串文字可以归咎于),所以我测试了在违规行之前的代码中放置一个伪造的字符串文字。

NSString *whatever = @"";

显然,它让编译器确信不是线已经搞砸了,所以它编译得很好而没有抱怨。在构建之后,我能够删除伪造的字符串变量并继续我的生活。

答案 5 :(得分:0)

我遇到了类似的问题,这是因为最后一句话被逃脱了。我正在使用带有终止“\”的多行字符串来吃掉行尾字符。

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

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