位移枚举NS_OPTIONS的使用和存储

NS_ENUM定义的枚举不能几个枚举项同时存在,只能选择其中一项

而NS_OPTIONS几个枚举项同时存在:如下

因此只要枚举值需要用到按位或(2个及以上枚举值可多个存在)就使用NS_OPTIONS,否则使用NS_ENUM

创建方法如下:

位移枚举NS_OPTIONS的使用和存储_第1张图片
小括号中第一个为NSUInteger这个为固定值,第二个为枚举类型,自己定义 创建

那么这类枚举要怎么存储呢

举个例子使用NSUserDefaults存储

NSUserDefaults支持的数据类型有:NSNumber(NSInteger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL.因此不能用下图方法存储。


位移枚举NS_OPTIONS的使用和存储_第2张图片

因此我们要将它转换一下,如下图

既然存储完了,我们读取之后要怎么使用呢

位移枚举要使用&符号来判断,而不是用==来判断


位移枚举NS_OPTIONS的使用和存储_第3张图片

你可能感兴趣的:(位移枚举NS_OPTIONS的使用和存储)