self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleWidth;
源代码如上所示。想知道符号“|”是什么 代表?非常感谢您的回答并感谢您的回复;)
self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleWidth;
源代码如上所示。想知道符号“|”是什么 代表?非常感谢您的回答并感谢您的回复;)
简而言之:这是一个按位或运算。
它通常用于生成位掩码。
通过此操作,您可以将标志组合成二进制数。
例如:UIViewAutoresizing的可能标志是:
enum {
UIViewAutoresizingNone = 0, // = 0b 0000 0000 = 0
UIViewAutoresizingFlexibleLeftMargin = 1 << 0, // = 0b 0000 0001 = 1
UIViewAutoresizingFlexibleWidth = 1 << 1, // = 0b 0000 0010 = 2
UIViewAutoresizingFlexibleRightMargin = 1 << 2, // = 0b 0000 0100 = 4
UIViewAutoresizingFlexibleTopMargin = 1 << 3, // = 0b 0000 1000 = 8
UIViewAutoresizingFlexibleHeight = 1 << 4, // = 0b 0001 0000 = 16
UIViewAutoresizingFlexibleBottomMargin = 1 << 5 // = 0b 0010 0000 = 32
};
typedef NSUInteger UIViewAutoresizing;
陈述:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleWidth;
本质上等同于:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
(因为两个操作数相同)。
如果您要问:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
这将设置self.autoresizingMask
为:
(1<<1)|(1<<4)=(0b 0000 0010)|(0b 0001 0000)=0b 0001 0010 = 9
按位或不要与与简单真/假代数一起使用的逻辑或混淆。
两者之间存在某种关系(按位或可以理解为逻辑或同一位置的位之间),但仅此而已。
| 是 C 中的按位或运算符(因此在 Objective-C 中)。
见http://en.m.wikipedia.org/wiki/Bitwise_operations_in_C
在您询问的上下文中,它用于组合两个标志值。
该| 字符表示包含或按位运算。它在匹配两个对象的位串的前提下运行。
如果您有一个位串 1101 和另一个 1001,则两者的包含或两者将产生 1011。基本上,如果两个字符串中的当前位相同,则在其位置输出 1,否则为 0。
那是按位或运算,也许这可以帮助您:按位运算