0

我有一个将枚举值作为参数引入的方法。

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

有四个可能的值:

  1. 只有UITableViewCellStateDefaultMask是真的。
  2. 只有UITableViewCellStateShowingEditControlMask是真的。
  3. 只有UITableViewCellStateShowingDeleteConfirmationMask真的。
  4. UITableViewCellStateShowingEditControlMask AND UITableViewCellStateShowingDeleteConfirmationMask为真。

最后一种可能性是我遇到的麻烦。当且仅当最后两个选项为真时,什么语句将返回真????

(顺便说一句,这是 Objective-C 代码)

谢谢!

4

1 回答 1

3
int mask=UITableViewCellStateShowingEditControlMask|UITableViewCellStateShowingDeleteConfirmationMask;
BOOL result=(value&mask)==mask;

要不就

(value&0x03)==0x03

如果你觉得懒惰:)

于 2010-10-13T16:28:56.067 回答