我理解当我们像下面这样声明enum时,值默认为"int"类型
enum{
category0,
category1
};
然而,我现在遇到了iOS支持64位的问题。我想的解决方案是防止在我的代码中改变很多,使这个enum值默认为"NSInteger"而不是"int"。根据我的理解,系统会决定NSInteger的类型是int还是long取决于它是在32位还是64位上运行。我很难理解enum,所以我会感谢你在这方面的帮助。由于
如果我按照注释的建议使用typedef:
typedef NS_ENUM(NSInteger, Category){
category0,
category1
}
我应该如何使用它?通常我比较它时,比如tableview的indexpath。Section,我这样做
if(indexpath.section == category0){
...
}
如果我声明了"Category",我需要使用它吗?对不起,我不太明白typedef
Try
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){
...
}