self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleWidth;
Исходный код показан выше. Интересно, что символ «|» означает? Поблагодарите ваш ответ и спасибо за ответ;)Часто используемый символ "|" в Objective-C
self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleWidth;
Исходный код показан выше. Интересно, что символ «|» означает? Поблагодарите ваш ответ и спасибо за ответ;)Часто используемый символ "|" в Objective-C
Вкратце: это операция bitwise OR.
Он типично используется для создания битмасков.
С помощью этой операции вы можете комбинировать флаги с двоичным числом.
Например: возможные флаги для 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;
является esentially такой же, как:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
(поскольку оба операнда одинаковы) ,
Если вы спросите о:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
это было бы установить self.autoresizingMask
на:
(1<<1)|(1<<4)=(0b 0000 0010)|(0b 0001 0000)=0b 0001 0010 = 9
побитовое ИЛИ не следует путать Logical OR используется с простой истина/ложь алгебры.
Существует некоторая взаимосвязь между двумя (побитовыми или может быть понята как логическая или между битами в одном и том же положении), но это о ней.
The | символ обозначает инклюзивную или поразрядную операцию. который работает в соответствии с посылкой с совпадением битовых строк двух объектов.
Если у вас есть битовая строка 1101, а другая 1001 включительно или из двух будет производить 1011. В принципе, если текущий бит в обеих строках одинаковый, тогда на его месте выводится 1, иначе 0.
| является побитовым оператором OR в C (и, следовательно, в Objective-C).
См http://en.m.wikipedia.org/wiki/Bitwise_operations_in_C
В контексте вы спросили о, она используется для объединения двух значений флага.
То есть побитовое ИЛИ операции, может быть, это может помочь вам: Bitwise operation
+1 большой ответ. – Popeye
@ Попей: спасибо! –