objective-c - Class 类在哪里声明/如何转发声明它?

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

由于标题中的这个错误,我无法编译:

error: expected identifier [1]

-(void) removeAllEntitiesOfClass:(Class)class;

插入符号指向小写类。

删除该函数使其再次编译。

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

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

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

最佳答案

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

关于objective-c - Class 类在哪里声明/如何转发声明它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9305923/

相关文章:

c++ - 从 Objective C 类调用 Objective C++ 方法

c++ - 语言混合 : Model and View

ios - Swift animateWithDuration Completion 在推送模态视图时运行?

iphone - 将运行时详细信息发送到 HTML 文件,以便从 iPhone 的应用内电子邮件发送

objective-c - Core Animation - 使用 `makeBackingLayer` 不应用 Core Image Filter

ios - UIView 不响应触摸

ios - 仅带有背景音乐的 AVCaptureSession

ios - 如何更改 Objective-C 中 UITableViewCell 中先前按下的 UIButton 标签?

iphone - 加载数据uitextfield

c++ - 是否可以符号化 C++ 代码?