Objective-C получает свойство класса из строки

#ios #objective-c #class #properties

#iOS #objective-c #класс #свойства

Вопрос:

Я слышал ряд похожих вопросов для других языков, но я ищу конкретный сценарий.

В моем приложении есть базовая модель данных под названием «Запись», которая имеет несколько столбцов / свойств, таких как «дата, столбец 1 и столбец2». Чтобы сохранить чистоту программирования и я мог адаптировать свое приложение к нескольким сценариям, поля ввода сопоставляются со свойством Core Data внутри plist (так, например, у меня есть строковая переменная с именем «dataToGet» со значением ‘column1’.

Как я могу извлечь свойство «column1» из класса Record с помощью переменной dataToGet?

Комментарии:

1. Вероятно, с использованием KVC. Не совсем понял ваш вопрос. Вы хотите получить свойство, имя которого может быть введено пользователем?

Ответ №1:

Механизм кодирования значения ключа позволяет взаимодействовать со свойствами класса, используя строковые представления имен свойств. Так, например, если у вашего Record класса есть свойство с именем column1 , вы можете получить доступ к этому свойству следующим образом:

 NSString* dataToGet = @"column1";
id value = [myRecord valueForKey:dataToGet];
  

Вы можете адаптировать этот принцип к вашим конкретным потребностям.

Комментарии:

1. Спасибо, Мэтт, это не только решает мою непосредственную проблему, но и, без сомнения, поможет в будущих ситуациях.