iOS - 如何组合布尔值

iOS - How combine booleans

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

例如:opt1 = TRUE and opt3 = TRUE -> combination = 101 (5) 等等。

我想我需要使用 NS_OPTIONS

typedef NS_OPTIONS(NSUInteger, MyOption)
{
    OptNone      = 0,
    OptionOne    = 1 << 0,
    OptionTwo    = 1 << 1,
    OptionThree  = 1 << 2
};

但我不知道如何结合我的布尔状态来获得 MyOption。

提前致谢

你可以结合逻辑运算符 |

MyOption bothOptions = option1 | optin2

确定是bothOptions集合中的option3

if((option3 & bothOptions) == option3){}

我建议您 google,它是如何工作的:)

#define boolToMask(x,mask)  (x?mask:0)

MyOption optionSeT = boolToMask(opt, OptionOne)|boolToMask(opt2, OptionTwo)|boolToMask(opt3, OptionThree);