Объектив C Эквивалент PHP "Переменные переменные"

В PHP и в JavaScript вы можете динамически использовать переменную, используя другую переменную как часть ее имени. Я не хочу использовать массив как часть решения. Может ли это быть достигнуто в Objective C? Я хотел бы сделать что-то вроде этого:

for (int i=1; i<6; i++) {
        if([appRecord.answer(i) length] != 0){
            self.textView.answer(i)ViewSingle.text = appRecord.answer(i);
        }
}

Ответы

Ответ 1

Короткий ответ: Нет.

Длинный ответ: вид.

  • Вы можете использовать массив, хранить в нем переменные и индексировать его.
  • Как и # 1, если ваши объекты на самом деле являются элементами пользовательского интерфейса, и вам не нужна целая группа IBOutlets, используйте вместо этого IBOutletCollection.
  • Вы можете использовать словарь, хранить переменные в качестве значений и искать их по клавише.
  • Вы можете объявить все свои переменные как @property, а затем использовать [self valueForKey:] для поиска по имени.
  • Вы можете построить имя ivar как строку, а затем использовать что-то вроде object_getInstanceVariable(), чтобы получить его значение напрямую (это аналогично # 3, за исключением того, что вам не нужно объявлять его как @property). Это чрезмерно сложно и, как правило, намного больший молот, чем вам действительно нужно.
  • Если вы имеете дело с представлениями, вы можете назначить каждому виду уникальный тег, а затем получить его через [superview viewWithTag:aTag]. Я не рекомендую использовать этот подход.

EDIT: Обратите внимание, что это работает только с переменными экземпляра. Это не работает с глобальными/статическими переменными.

Ответ 2

Нет. Но вы можете указать тег для представления и использовать -viewWithTag:.