У меня есть словарь с идентификатором и значением. Например
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