ObjC - NS_ENUM命令?

时间:2014-11-12 15:46:43

标签: objective-c macros enums

给定一个NS_ENUM枚举宏:

typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
    UITableViewCellStyleDefault,
    UITableViewCellStyleValue1,
    UITableViewCellStyleValue2,
    UITableViewCellStyleSubtitle
};

元素的顺序是什么?我的意思是每个元素的基础整数值。

例如,UITableViewCellStyleDefault的值是0,UITableViewCellStyleValue1的值是1,UITableViewCellStyleValue2的值是2,UITableViewCellStyleSubtitle的值是3吗?

或者它可以是这样的:UITableViewCellStyleDefault的值为30,UITableViewCellStyleValue1的值为15,UITableViewCellStyleValue2的值为23,UITableViewCellStyleSubtitle的值是否为3?

由于

1 个答案:

答案 0 :(得分:0)

NS_ENUM值从0开始并按顺序增加。因此,在UITableViewCellStyle示例的情况下,因为它被编码,那些值将是正确的。通常无法保证枚举的顺序不会改变,因此您应该认为这些值是不透明的;当然,在大多数情况下,你不应该比较它们或尝试用数学做任何聪明的事情。如果实际值很重要NS_OPTIONS将是一个更好的选择,但即使这样,底层值也可能会发生变化,这对依赖于选项集的代码不会产生任何影响。