如果self.bitmask | = flag添加一个选项,如何删除一个?

时间:2013-07-26 09:57:56

标签: iphone ios objective-c c ipad

实施例

self.accessibilityTraits |= UIAccessibilityTraitAdjustable;

添加UIAccessibilityTraitAdjustable选项。但是如何从面具中删除一个选项,而不必设置所有内容?

4 个答案:

答案 0 :(得分:34)

它与标志的补充:

self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;

如果self.accessibilityTraits是:

  000110

UIAccessibilityTraitAdjustable是:

  000100

这些值是示例;我没有查找真实值

然后self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;是:

  000110
& 111011
= 000010

答案 1 :(得分:7)

尝试self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;

~将要反转的位反转,要保留的位现在为1,要清零的位为0.使用左侧变量对其进行保留将保留在{的相应位置具有1的位{1}}将清除~UIAccessibilityTraitAdjustable的相应位置中具有0的位。

答案 2 :(得分:6)

self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;

~UIAccessibilityTraitAdjustable将所有位反转,将表示您选项的位置保留为0。二进制文件负责其余部分。

答案 3 :(得分:5)

self.accessibilityTraits &= ~UIAccessibilityTraitAdjustable;

~将位掩码(NOT)反转为包含所有位除了给定的位,而&= AND s包含变量的结果删除该位。