一: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开始。