声明的Class类在哪里/如何转发声明它?

时间:2012-02-16 05:14:47

标签: objective-c ios objective-c++ forward-declaration metaclass

我无法编译我,因为我的标题中出现此错误:

  

错误:预期标识符[1]

     

- (void)removeAllEntitiesOfClass:(Class)class;

指示符指向小写类。

删除此功能会使其再次编译。

我的类是NSObject的子类,它有公共方法使用Class,所以我认为这会自动声明。

我也尝试将Class更改为Class *并使用@Class Class转发声明,但这不起作用 - 它说它是重新定义,因为我正在更改类型。显然,Class是一个typedef'd结构指针。我不确定如何在这里转发声明,我似乎记得转发声明指针typedef可能是令人讨厌的事情。如果我错了,请纠正我,告诉我要导入哪个文件或如何转发声明。

@interface GameState : NSObject {   
...
}
...
-(void) removeAllEntitiesOfClass:(Class)class;   
@end                                             

1 个答案:

答案 0 :(得分:2)

我怀疑你的标题在Objective-C ++翻译中是可见的。在C ++中,class是一个关键字。要解决此问题,请将参数的名称从class更改为某个非关键字。

相关问题