2016-05-27 3 views
0

У меня есть класс C++, имеющий следующее перечисление.как скопировать C++ enum в Objective C enum

typedef enum 
{ 
    UnknownType = 0, 
    Array = 1, 
    Block = 2, 
    Enumeration = 3, 
}ParameterValueType_t; 

Я хочу скопировать его в Objective C enum. Как его скопировать?

+0

Вы можете хранить перечисление в файле C и используйте оба языка, или я думаю, что для Objective-C++ должен быть другой вариант (присвоение имен вашим файлам как .mm) – BlackBox

+1

Это допустимое перечисление Objective-C, поскольку Objective-C является надмножеством C, поэтому вы можете просто copy'n'paste. Но, возможно, это не то, о чем вы спрашиваете? – CRD

ответ

1

Используйте plain C, чтобы объявить ваше перечисление и поместить его в файл заголовка, например. MyEnums.h файл. Включите этот MyEnums.h в файлы C++ и Objective-C. Оба языка понимают декларацию перечисления от C.

E.g. MyEnums.h

#ifndef PARAMETERVALUETYPE 
#define PARAMETERVALUETYPE 

typedef enum { 
    UnknownType = 0, 
    Array = 1, 
    Block = 2, 
    Enumeration = 3 
} ParameterValueType_t; 

#endif 

C++ файл * .h/* каст:

#include "MyEnums.h" 

// ... C++ code 

Objective-C Файл * .m:

#import "MyEnums.h" 

// ... Objective-C code