Objective-C - логические атрибуты -> отобразить изображение - PullRequest
0 голосов
/ 07 февраля 2011

У меня есть приложение для iPad, и у меня есть объект с пятью атрибутами типа bool.У меня есть UIImageView, где я должен поместить изображение в зависимости от того, какой из этих атрибутов является истинным.Это мой исходный код, который отлично работает:

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"];
}

Для меня это выглядит не так хорошо.Разве нет лучшего способа решить эту «проблему»?

С наилучшими пожеланиями, Тим.

1 Ответ

2 голосов
/ 07 февраля 2011

Являются ли все атрибуты действительно независимыми? Судя по логике, которую вы демонстрируете, вы ожидаете, что за один раз будет установлен только один атрибут.

Если это так, возможно, атрибуты могут быть объединены в одно значение перечисления с возможными значениями 1-5, тогда вы можете просто использовать это число для выбора изображения:

 NSString *imageName = [NSString stringWithFormat:@"imageForAttribute%d.png", attr];
 myCell.imageView.image = [UIImage imageNamed:imageName];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...