Как сохранить переменные с типом значения Measurement <UnitType>, используя Realm Swift? - PullRequest
0 голосов
/ 21 ноября 2018

Поддерживает ли Realm Swift сохранение и извлечение данных с типом значения Measurement?Вот структура классов данных, которые я пытаюсь сохранить:

class Race: Object {
@objc dynamic var raceDistance: Measurement<UnitLength>?
@objc dynamic var nettTime = Measurement<UnitDuration>?
}

1 Ответ

0 голосов
/ 21 ноября 2018

Measurement сами не поддерживаются Realm, но вы можете хранить их составные части.

A Measurement - это просто значение с единицей измерения.Таким образом, для raceDistance вы можете хранить

let raceDistance = RealmOptional<Double>()
@objc dynamic var raceDistanceUnit: String? = nil

И вы можете добавить вычисляемое свойство, подобное этому, чтобы получить Measurement<UnitLength> из значения и единицы измерения:

var raceDistanceMeasurement: Measurement<UnitLength>? {
    get {
        if let distance = raceDistance.value, let unit = raceDistanceUnit {
            return Measurement(value: distance, unit: UnitLength(symbol: unit))
        }
        return nil
    }

    set {
        raceDistance.value = newValue?.value
        raceDistanceUnit = newValue?.unit.symbol
    }
}
...