我无法摆脱类模块上的两个错误,即使我已将代码简化为最小表达式:
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
@end
这两个错误都在@interface行上报告,它们是: - 缺少@end - 期望的标识符或'{'
答案 0 :(得分:32)
检查同一页面上#imported的头文件,并验证头文件是否与@interface / @ end语句匹配。
我遇到了同样的问题,XCode报告我的.m文件的@implementation缺少@end语句,即使我把它简化为:
#import "MasterViewController.h"
#import "MyBadHeaderFile.h"
@implementation MasterViewController
@end
实际上,这个bug是#imported MyBadHeaderFile.h文件中缺少的@end。
答案 1 :(得分:4)
我遇到了类似的问题,在我的代码中添加}
为我找到了错误。
在我添加}
之前,我收到了以下错误:
@
(解析问题)}
(解析问题)@end
答案 2 :(得分:4)
1)编译器可以指向你完全错误的文件。通过项目中的所有.h和.m文件,检查匹配的'@interface'/'@ end','@ implementation'/'@ end'等等。
2)如果您误导导入.m文件而不是.h
,也会发生这种情况答案 3 :(得分:2)
错误出现在哪个文件中无关紧要。确保检查您最近修改过的所有文件。我似乎已将一个文件从测试项目复制到我的实际项目中,并在其中一个文件中忘记了@end。它给了我完全不相关的.h文件的错误。
答案 4 :(得分:1)
尝试从“在项目设置中编译源代码”
中删除此类的实现文件答案 5 :(得分:0)
@interface MyClass : NSObject{
}
@end
答案 6 :(得分:0)
我遇到了类似的问题,代码很好但是却抛出了这个错误。
我最终通过清理项目来解决它,你试过吗?
答案 7 :(得分:0)
\n@end\n
部分都是荒谬的。(在设计用于帮助用户的消息中显示 \ n 的换行符 GUI? 真的 CLANG?)
当您刚刚创建了一个新类时,@interface
&amp; @implementation
个文件看起来非常相似,Xcode会自动将光标放在实现中。
如果您在实现文件中不假思索地开始输入您的界面(您的方法签名声明),您将最终得到此警告,因为分析器在没有打开和关闭大括号的情况下看到方法。
答案 8 :(得分:0)
我有同样的错误,那是因为我有
@interface MyViewController ()
在MyViewController.m
中声明了两次