Отображение из строки в параметр объекта - PullRequest
0 голосов
/ 31 марта 2020

У меня есть словарь с идентификатором и значением. Например

mappingDictionary["vehicle.fuel_level"] = 50

Теперь я хочу перенести словарь в объект. Объект представляет собой довольно большой объект с некоторыми дочерними объектами.

class Status {
// ... 
var vehicle: Vehicle? 
// ...
} 

class Vehicle {
//  ...
var fuel_level: Int? 
// ....
}

Наивным подходом было бы просто сделать запрос If

if dictionary.key = "vehicle.fuel_level" {
   statusObject.vehicle.fuel_level = dictionary.value
}

Возможно ли универсальное c решение? Используя Reflection, я мог, по крайней мере, узнать, куда нужно написать "vehicle.fuel_level". Но как я могу получить значение в объект, если вы не знаете, где значение должно go?

Существует ли своего рода «маршрут» для адресации объекта?

Псевдокод :

statusObject["vehicle"].[fuel_level] = dictionary.value 

Обновление: данные поступают с устройства Bluetooth. Приложение читает характеристики c значения. Например, значение равно 0,1 или 2. Для каждого признака c существует отображение.

Таким образом, разъем Bluetooth считывает значения и возвращает их интерактору. Интерактор вызывает переводчика. Интерпретатор имеет конфигурацию отображения с типом (например, int8, int16, short) и единицей (например, km, процент ...). И это отображение должно заполнить целевой объект. Итак, было бы очень хорошо, если бы я мог сказать: поместите значение из строки "vehicle.fuel_level" в объект vehicle.fuel_level = newValue

...