【发布时间】:2012-03-07 12:50:15
【问题描述】:
由于我的标头中有这个错误,我无法编译我的:
错误:预期标识符 [1]
-(void) removeAllEntitiesOfClass:(Class)class;
插入符号指向小写类。
删除此函数使其再次编译。
我的类是 NSObject 的子类,它有使用 Class 的公共方法,所以我认为这会自动声明。
我还尝试将 Class 更改为 Class* 并使用 @Class Class 转发声明,但这不起作用 - 它说这是重新定义,因为我正在更改类型。显然 Class 是一个类型定义的结构指针。我不确定如何在这里转发声明,我似乎记得转发声明指针 typedef 可能是一件令人讨厌的事情。如果我错了,请纠正我,并告诉我要导入什么文件或如何转发声明。
@interface GameState : NSObject {
...
}
...
-(void) removeAllEntitiesOfClass:(Class)class;
@end
【问题讨论】:
-
很奇怪。它应该可以工作。头文件里有#imported Foundation吗?
-
它编译得很好……你可能设置了错误的架构或目标?
-
@Costique:是的,我试过
无济于事。 -
@Peter:感谢测试,我看看我的配置。目标是iOS。虽然,该项目已经构建了很长一段时间,但没有更改配置。
-
很抱歉没有说明我在使用 obj-C++ 工作,编辑问题标签。
标签: objective-c ios objective-c++ forward-declaration metaclass