Search code examples
swiftmeasurement

Measurement - get full unit name


I'm not sure how to use measurement to get full name of the unit. For example "kilometers" instead of "km".

let measurement = Measurement(value: 50, unit: UnitLength.meters)
let convertedMeasurement = measurement.converted(to: UnitLength.kilometers)

let value = convertedMeasurement.value // 0.05
let unitSymbol = convertedMeasurement.unit.symbol // km
let unit = convertedMeasurement.unit.? // I expect the output to be "kilometers"

Solution

  • In order to get the full name of the unit you can use the MeasurementFormatter like so:

    let formatter = MeasurementFormatter()
    formatter.unitStyle = .long
    let unit = formatter.string(from: convertedMeasurement.unit) //"kilometers"