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
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 № 1los 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
}