3
我有一个Objective C选择器返回整数。我有一个C++实例方法,期望一个枚举。我如何链接它们?我在做一个Objective C++(.mm)类的时候。目标C++代码中的objc整数和C++枚举之间的转换
我想称之为:
TKClass::foo(MyEnum enumVal) { ... }
随着该返回值:
- (int) intValue { ... }
像这样:
myCPPInstance->foo([myObjCInstance intValue]);
我试过铸造(foo((MyEnum) [myObjCInstance integerValue])
),但它不起作用。我绝对不希望我的Objective C对象知道枚举的任何内容; intValue
需要保留为整数。同样,我真的不想让C++方法在接受枚举时担心整数输入。
我不是一个C++程序员,所以很抱歉,如果这很容易。
感谢
编辑:枚举的定义是这样的:
enum MyEnum {
Apples = 0,
Bananas = 1,
Chocolate = 2
};
当你尝试'foo((MyEnum)[myObjcInstance integerValue]),会发生什么? –
编译器说“缺少[在消息发送表达式的开始” –
哦,这是一个命名空间问题。感谢罗布 - 让我看看所有的编译器错误,而不仅仅是第一个。 –