这个枚举有两个名字吗?如何将其转换为 NS_ENUM?

Does this enum have 2 names? How do I convert it to an NS_ENUM?

在将 Objective-C enums 转换为 NS_ENUMs 时,我遇到了这样的情况,这对我来说很奇怪:

enum nameA{
    valueA=1,
    valueB,
    // ...
    valueN
}nameB;

在代码中,nameAnameB是两个不同的名字。 这个enum的名字是bothnameAandnameB吗?我如何将其转换为 NS_ENUM?

您的示例代码等同于:

enum nameA {
   ...
};
enum nameA nameB;

所以它不仅仅是枚举的声明,它也是该类型变量的定义。在进行翻译时,您需要考虑到这一点。类似于:

typedef NS_ENUM(NSInteger, nameA) {
    ...
};
nameA nameB;