我正在尝试建立一个规则字典;键是字符串,我很乐意将值设置为位图。
我正在使用NS_OPTION来声明项目:
typedef NS_OPTIONS(NSInteger, PermittedDirection) {
LeftDirection = 1 << 0,
RightDirection = 1 << 1
};
typedef NS_OPTIONS(NSInteger, PermittedSize) {
SmallSize = 1 << 0,
MediumSize = 1 << 1,
LargeSize = 1 << 2
};
我的规则字典定义如下:
@property (atomic, strong) NSMutableDictionary * rules;
稍后我将其实例化为:
self.rules = [[NSMutableDictionary alloc] init];
稍后我尝试添加位掩码(如下所示)并获取错误,因为枚举不是指向对象的指针:
PermittedSize size = SmallSize | LargeSize;
[self.rules setObject:size forKey:ALLOWED_FISH_SIZE];
是否有一种简单的方法来包装这些,而不会在我检索值时失去使用位掩码的能力?
答案 0 :(得分:4)
您可以使用:
将其打包在NSNumber
上
PermittedSize size = SmallSize | LargeSize;
self.rules[ALLOWED_FISH_SIZE] = @(size);
然后,当您检索它时,只需取消装箱值:
PermittedSize size = (PermittedSize) [self.rules[ALLOWED_FISH_SIZE] integerValue];