美文网首页
枚举的两种形式NS_OPTIONS与NS_ENUM

枚举的两种形式NS_OPTIONS与NS_ENUM

作者: T情不知所起一往而深 | 来源:发表于2018-12-28 10:35 被阅读0次

一:NS_OPTIONS

typedef NS_OPTIONS(NSUInteger,Test){
TestA=0,//值为0
TestB=1<<0,//值为2的0次方
TestC=1<<1,//值为2的1次方
TestD=1<<2//值为2的2次方
};

二:NS_ENUM

两种形式官方推荐使用第一种形式

typedef NS_ENUM(NSInteger,Test){
TestA=-1,//值为-1
TestB=0,//值为0
TestC=1//值为1
};
typedef enum{
TestA=-1.//值为-1
TestB=0,//值为0
TestC=1//值为1
}Test;
区别:

1.NS_OPTIONS中使用的是NSUInteger,而NS_ENUM使用的是NSInteger。
2.NS_OPTIONS中的枚举值可多选,但是NS_ENUM不可以。
3.NSOPTIONS枚举项的值需要表示为1<<0,1<<1,2的几次放的形式,而NS_ENUM可以直接给1、2、3这样的值,不给默认从0开始。

相关文章

网友评论

      本文标题:枚举的两种形式NS_OPTIONS与NS_ENUM

      本文链接:https://www.haomeiwen.com/subject/bcqslqtx.html