我在我的程序中遇到上述错误。我在 swift 中使用 C++ 代码( objective-c )。它与 IOS 8.4 框架文件(IOS 8.4->usr/include->search. h).如果我更改枚举的名称,错误就解决了,但我想知道错误的原因。欢迎任何有值(value)的想法。请看截图
查看两个冲突文件中的枚举代码 主.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;
最佳答案
在定义枚举本身的上下文中,枚举值与变量和 typedef 共享相同的命名空间。
enum Foo {
Bar;
}
typedef int Bar;
int main() {
Bar ... //do I refer to typedef or enum value?
}
C++11 引入了一个新的构造“枚举类”,其成员被放置在枚举名称下的单独 namespace 中:
enum class Foo {
Bar;
}
typedef int Bar;
int main() {
Bar ... //typedef
Foo::Bar ... //enum value
}
关于c++ - 'ACTION' 的 Swift 编译器错误重新定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31554077/