c++ - 在 Objective C++ 代码中在 objc 整数和 C++ 枚举之间转换

标签 c++ objective-c enums

我有一个返回整数的 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/

相关文章:

java - 字符串或枚举作为参数来引用模型字段

php - 将 '&' 字符串从 xcode 传递到 php?

objective-c - 我无法翻译这个异常(exception)。如何解决?

java - 将 Scala Case 对象用于 Java 枚举?

c++ - 有没有可能 : Using multiple threads to stream output to different files/

objective-c - 如何从 swift 访问枚举到 Objective C

java - 枚举:每个实例独有的方法

c++ - 如何在类/对象C++中使用复数

c++ - 解决台球击球的脉冲轨迹

c++ - 带有单体定时器的 pthread_cond_timedwait 有时超时比预期晚