我正在尝试建立一个规则字典;键是字符串,我想将值设置为位图。
我正在使用 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];
有没有一种简单的方法可以以某种方式包装这些值,而不会失去稍后在检索值时使用位掩码的能力?
最佳答案
您可以使用以下方法将其包装在 NSNumber
上:
PermittedSize size = SmallSize | LargeSize;
self.rules[ALLOWED_FISH_SIZE] = @(size);
然后,当您检索它时,只需将值拆箱即可:
PermittedSize size = (PermittedSize) [self.rules[ALLOWED_FISH_SIZE] integerValue];
关于objective-c - 是否可以将 NS_OPTION 设置为 NSMutableDictionary 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761134/