所有突然的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会给我这个错误?这似乎是一个错误。
答案 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\" ];
我删除了错误的“\”,它吃了最后的报价。