我有一个返回整数的 Objective C 选择器。我有一个需要枚举的 C++ 实例方法。我如何链接它们?执行此操作时,我在 Objective C++ (.mm) 类(class)中。
我想这样称呼:
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
};
最佳答案
这是一个命名空间问题。 Actor 应该是:
myCPPInstance->foo((myNamespace::MyEnum) [myObjCInstance intValue]);
关于c++ - 在 Objective C++ 代码中在 objc 整数和 C++ 枚举之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8333366/