iOS - 如何结合布尔值

时间:2015-02-17 09:06:24

标签: ios enums boolean

我有三个布尔值,用户在选择选项时会更改值。 考虑到我正在考虑使用二进制表示法组合它们的选项组合。

例如: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结合起来。

提前致谢

1 个答案:

答案 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);