Логика для поиска состояний в Enum - PullRequest
0 голосов
/ 13 октября 2010

У меня есть метод, который вводит значение Enum в качестве аргумента.

enum {
   UITableViewCellStateDefaultMask                     = 0,
   UITableViewCellStateShowingEditControlMask          = 1 << 0,
   UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1
}; 

Существует четыре возможных значения:

  1. Только UITableViewCellStateDefaultMask верно.
  2. Только UITableViewCellStateShowingEditControlMask верно.
  3. Только UITableViewCellStateShowingDeleteConfirmationMask.
  4. Оба UITableViewCellStateShowingEditControlMask И UITableViewCellStateShowingDeleteConfirmationMask верны.

Эта последняя возможность - та, с которой у меня проблемы. Какое утверждение вернет истину, если и только если два последних варианта верны ????

(кстати, это код Objective-C)

Спасибо!

1 Ответ

3 голосов
/ 13 октября 2010
int mask=UITableViewCellStateShowingEditControlMask|UITableViewCellStateShowingDeleteConfirmationMask;
BOOL result=(value&mask)==mask;

или просто

(value&0x03)==0x03

если тебе лень :))

...