2010-10-13 31 views
0

J'ai une méthode qui introduit une valeur Enum comme argument.Logique pour trouver des états dans une énumération

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

Il existe quatre valeurs possibles:

  1. Seulement UITableViewCellStateDefaultMask est vrai.
  2. Seul UITableViewCellStateShowingEditControlMask est vrai.
  3. Seulement UITableViewCellStateShowingDeleteConfirmationMask est ture.
  4. Les deuxUITableViewCellStateShowingEditControlMasketUITableViewCellStateShowingDeleteConfirmationMask sont vrais.

Cette dernière possibilité est celle avec laquelle je rencontre des problèmes. Quelle déclaration retournera vrai si et seulement si les deux dernières options sont vraies ????

(ce code est en Objective-C BTW)

Merci!

Répondre

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

ou tout simplement

(value&0x03)==0x03

si vous vous sentez paresseux :)