В каркасах Cocoa и Cocoa Touch в качестве констант используются перечисления. Я понимаю, как использовать его, кроме как в одном случае, случай, который вы можете передать как параметр с несколькими значениями с помощью оператора |
. Как и в:Множественное перечисление значений в Obj-C
pageControl.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin);
Перечисление объявляется так:
enum {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;
Как я могу определить себя этот тип перечисления (т.е. то, что <<
средства) и как я могу проверить для значений мультипликаторов при передаче в виде параметр?
Это имеет смысл, Джоэл. Спасибо за полный ответ! – gcamp
Вы ставите. Я добавил ссылку, чтобы объяснить упомянутые операторы и некоторые дополнительные операторы бит, если вы заинтересованы. – Joel
Будьте осторожны, так как ваш пример не работает. Равенство (==) имеет более высокий приоритет, чем поразрядный, и (&) в C, поэтому это всегда будет терпеть неудачу, если только (myenum & 0x01) не будет истинным, а это не то, что вы имеете в виду. Нужно быть, если ((myenum & UIViewAutoresizingFlexibleLeftMargin) == UIViewAutoresizingFlexibleLeftMarging) doSoemthing() –