Я не согласен с теми, кто обеспокоен дизайном, если это действительно код. Однако я предполагаю, что вы публикуете только обобщенную версию своего вопроса. И поскольку это важная концепция в Objective-C, мы должны поговорить об этом.
Вы можете получить доступ к свойствам объекта по имени, используя кодирование значения ключа и подпрограмму -valueWithKey:
.
NSString *nameOfView = @"imageView1";
[[self valueForKey:nameOfView] setHidden:YES];
По порядку будет искать метод с именем -imageView1
, ивар с именем imageView1
и, наконец, ивар с именем _imageView1
. Этот метод очень интенсивно используется в какао, и его важно понимать. Это одна из многих причин, по которым мы тщательно называем вещи, и еще одна причина, по которой мы создаем средства доступа, которые управляют управлением памятью для нас. Поищите в документации «Соответствие ключ-значение» для получения дополнительной информации.
Теперь для этого конкретного случая я бы склонялся к чему-то более похожему на решение JimG, используя NSArray для представлений, поэтому я могу проходить через них и включать или выключать те, которые мне нужны, на основе их индекса. Но я могу представить множество случаев, когда это не подходит, и KVC может быть.