在最新的工具中,现在允许使用一种新的enum:

typedef enum CarType : NSUInteger {
  FourDoorCarType,
  TwoDoorCarType
} CarType;

我的问题分为几部分:
  • 为什么应该使用此方法而不是旧方法?
  • 为什么CarType出现两次?我尝试跳过第一个CarType,仅将第一行保留为“typedef enum : NSUInteger {”,它似乎工作正常。有什么缺点(如果有)?
  • 是否可以使用NSUInteger以外的其他类型?
  • 最佳答案

  • 这明确定义了枚举使用的数字类型。这有助于解决可移植性。如果您需要控制有符号与无符号
  • ,这也有帮助
  • 此处实际上定义了两种类型。第一个是enum CarType,第二个是CarType,这是enum CarType的别名。您可以根据需要省略第一个CarType。这只是防止enum CarType被定义为类型,但是CarType仍然有效。人们做的另一件事是
    typedef enum _EnumName {
        values
    } EnumName;
    

    您决定在这里做什么是个人喜好的问题。
  • 是的。您可以使用任何数字类型,尽管枚举值必须能够适合所选类型。
  • 关于objective-c - Objective-C中的新枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11576118/

    10-12 01:32