我了解,当我们像下面那样声明枚举时,默认情况下,这些值的类型为“ int”

enum{
    category0,
    category1
};


但是,由于iOS支持64位,所以我遇到了问题。我正在考虑防止在代码中进行大量更改的解决方案是使此枚举值默认为“ NSInteger”而不是“ int”。据我了解,系统将决定NSInteger是int类型还是long类型,具体取决于它是运行在32位还是64位上。
我在理解枚举方面遇到困难,因此,感谢您在此方面的帮助。
谢谢

如果我按照注释建议使用typedef:

typedef NS_ENUM(NSInteger, Category){
    category0,
    category1
}


我应该如何使用它?通常,当我将其与tableview的indexpath.section比较时,我会这样做

if(indexpath.section == category0){
    ...
}


如果我声明“类别”,是否需要使用它?抱歉,我不太了解typedef。

最佳答案

尝试

typedef enum{
    category0,
    category1
} Category;


要么

typedef NS_ENUM(NSInteger, Category) {
    category0,
    category1
};


您还可以将整数明确设置为枚举值

typedef NS_ENUM(NSInteger, Category) {
    category0 = 0,
    category1 = 1,
    category42 = 42
};


然后,您可以像使用int一样使用它们

if(indexpath.section == category0){
    ...
}

10-04 11:43