2011-02-07 4 views
0

J'ai une application iPad et j'ai un objet avec cinq attributs de type bool. J'ai un UIImageView où je dois mettre une image en fonction de laquelle de ces attributs est vrai. Ceci est mon code source qui fonctionne bien:Objective-C - les attributs booléens -> mapper une image

if (myObject.attribute1) { 
    myCell.imageView.image = [UIImage imageNamed:@"imageForAttribute1.png"]; 
} else if (myObject.attribute2) { 
    myCell.imageView.image = [UIImage imageNamed:@"imageForAttribute2.png"]; 
} else if (myObject.attribute3) { 
    myCell.imageView.image = [UIImage imageNamed:@"imageForAttribute3.png"]; 
} else if (myObject.attribute4) { 
    myCell.imageView.image = [UIImage imageNamed:@"imageForAttribute4.png"]; 
} else if (myObject.attribute5) { 
    myCell.imageView.image = [UIImage imageNamed:@"imageForAttribute5.png"]; 
} 

Pour moi, il ne semble pas si agréable. N'y a-t-il pas une meilleure façon de résoudre ce "problème"?

Cordialement, Tim.

Répondre

2

Les attributs sont-ils vraiment indépendants? Selon la logique que vous montrez, il semble que vous vous attendiez à ce qu'un seul attribut soit défini à la fois.

Si tel est le cas, peut-être les attributs peuvent être combinés en une seule valeur ENUM, avec des valeurs possibles de 1-5, alors vous pouvez simplement utiliser ce numéro pour sélectionner l'image:

NSString *imageName = [NSString stringWithFormat:@"imageForAttribute%d.png", attr]; 
myCell.imageView.image = [UIImage imageNamed:imageName];