代码之家  ›  专栏  ›  技术社区  ›  Ky -

此枚举有2个名称吗?如何将其转换为NS_ENUM?

  •  1
  • Ky -  · 技术社区  · 10 年前

    转换Objective-C时 enum s到 NS_ENUM s、 我是这样遇到的,这对我来说似乎很奇怪:

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

    在代码中, nameA nameB 是两个不同的名字。 这是不是 枚举 二者都 名称A 名称B 作为其名称?如何将其转换为 NS_编号 ?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Carl Norum    10 年前

    示例代码相当于:

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

    因此,它不仅是枚举的声明,也是该类型变量的定义。翻译时你需要考虑到这一点。类似于:

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