在Objective C ++代码中转换objc整数和C ++枚举

时间:2011-11-30 21:45:44

标签: c++ objective-c enums

我有一个Objective C选择器,它返回整数。我有一个C ++实例方法,它需要一个枚举。我该如何链接它们?我正在使用Objective C ++(。mm)课程。

我想称之为:

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
};

1 个答案:

答案 0 :(得分:2)

这是命名空间问题。演职员应该是:

myCPPInstance->foo((myNamespace::MyEnum) [myObjCInstance intValue]);