NS_ENUM enum 区别

文/Mitchell(作者)

原文链接:http://www.jianshu.com/p/4aae576c71aa

著作权归作者所有,转载请联系作者获得授权,并标注“作者”。

下面是几种枚举的列举方式

定义整型值,但是不定义类型

enum{UITableViewCellStyleDefault,UITableViewCellStyleValue1,UITableViewCellStyleValue2,UITableViewCellStyleSubtitle};

定义适合特性参数的 UITableViewCellStyle 类型。

typedefenum{UITableViewCellStyleDefault,UITableViewCellStyleValue1,UITableViewCellStyleValue2,UITableViewCellStyleSubtitle}UITableViewCellStyle;

这种方法给出了 UITableViewCellStyle 确定的大小,但并没有告诉编译器这个类型和之前的 enum 有什么关系

typedefenum{UITableViewCellStyleDefault,UITableViewCellStyleValue1,UITableViewCellStyleValue2,UITableViewCellStyleSubtitle};typedefNSIntegerUITableViewCellStyle;

NS_ENUM: NS_ENUM 的第一个参数是用于存储的新类型的类型。在64位环境下,UITableViewCellStyle 和 NSInteger 一样有8bytes长。你要保证你给出的所有值能被该类型容纳,否则就会产生错误。第二个参数是新类型的名字。大括号里面和以前一样,是你要定义的各种值。

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

你可能感兴趣的:(NS_ENUM enum 区别)