/ / Redefinición del error del compilador Swift de 'ACTION' - c ++, macos, swift, ios8

Swift Compiler Error Redefinición de 'ACCIÓN' - c ++, macos, swift, ios8

Recibo el error anterior en mi programa.Estoy usando código C ++ en Swift (con el objetivo c). Da un conflicto con una enumeración presente en el archivo de marco de IOS 8.4 (IOS 8.4-> usr / include-> search.h). Si cambio el nombre de enum, el error es resuelto pero me gustaría saber la razón del error. Cualquier pensamiento valioso es bienvenido. Por favor, vea las capturas de pantalla mensaje de error

ubicación del conflicto vuela archivo de conflicto

Eche un vistazo al código de enumeración en ambos archivos de conflicto 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,
};

código en search.h

typedef enum {
FIND, ENTER
} ACTION;

Respuestas

1 para la respuesta № 1

los valores enum comparten el mismo espacio de nombres que las variables y los typedefs dentro del contexto donde se está definiendo el enum.

enum Foo {
Bar;
}

typedef int Bar;

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

C ++ 11 introdujo una nueva construcción "clase enum" con sus miembros que se ponen en un espacio de nombre separado debajo del nombre enum:

enum class Foo {
Bar;
}

typedef int Bar;

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