我有三个布尔值,用户在选择选项时会更改值。 考虑到我正在考虑使用二进制表示法组合它们的选项组合。
例如:opt1 = TRUE且opt3 = TRUE - >组合= 101(5)等。
我想我需要使用NS_OPTIONS
typedef NS_OPTIONS(NSUInteger, MyOption)
{
OptNone = 0,
OptionOne = 1 << 0,
OptionTwo = 1 << 1,
OptionThree = 1 << 2
};
但我不知道如何将我的布尔状态与MyOption结合起来。
提前致谢
答案 0 :(得分:0)
您可以与逻辑运算符结合使用
MyOption bothOptions = option1 | optin2
确定是两个选项集中的选项3
if((option3 & bothOptions) == option3){}
我会建议你去谷歌,它是如何运作的:)
#define boolToMask(x,mask) (x?mask:0)
MyOption optionSeT = boolToMask(opt, OptionOne)|boolToMask(opt2, OptionTwo)|boolToMask(opt3, OptionThree);