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);
我有三个布尔值,用户可以在选择选项时更改值。 考虑到选项的组合,我正在考虑使用二进制表示来组合它们。
例如: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);