Переопределение ошибки компилятора Swift для ‘ACTION’

Я получаю вышеупомянутую ошибку в моей программе. Я использую код C ++ в swift (с целью c). Это дает конфликт с перечислением, присутствующим в файле платформы IOS 8.4 (IOS 8.4-> usr / include-> search.h). Если я изменю имя enum, ошибка будет решена, но я хотел бы узнать причину ошибки. Любые ценные мысли приветствуются. Пожалуйста, смотрите скриншоты
сообщение об ошибке

место конфликта мухи
файл конфликта

Посмотрите код enum в обоих конфликтных файлах
main.h

    enum FilterConfigurationOrder
{
NAME_WITH_CREATOR,  // name@mobile
FROM_HHMM,
TO_HHMM,
FROM_YYYYMMDD,
TO_YYYYMMDD,
FROM_MOBILE,
TO_MOBILE,
FROM_LATITUDE,
TO_LATITUDE,
FROM_LONGITUDE,
TO_LONGITUDE,
AREANAME,
IS_WITHIN_AREA,
LOCATIONS_PER_MESSAGE,
EVERY_X_MINUTES,
ON_X_DAYS,
ACTION1,
};

код в search.h

typedef enum {
FIND, ENTER
} ACTION;

0

Решение

Значения enum имеют то же пространство имен, что и переменные и typedefs в контексте, где определяется само перечисление.

enum Foo {
Bar;
}

typedef int Bar;

int main() {
Bar ... //do I refer to typedef or enum value?
}

В C ++ 11 появилась новая конструкция «enum class», члены которой помещаются в отдельное пространство имен под именем enum:

enum class Foo {
Bar;
}

typedef int Bar;

int main() {
Bar ... //typedef
Foo::Bar ... //enum value
}
1

Другие решения


По вопросам рекламы [email protected]