如何在体积 HKUnits 之间进行转换?
How to convert between volumetric HKUnits?
我目前正致力于在我的应用程序中添加对体积单位的本地化支持。例如,我希望能够从液体盎司变为升,然后再变回来。基本上我想支持 HKUnit 支持的所有体积单位.dietaryWater
。
Apple 确实说过 "You can request the value from a quantity object in any compatible units."
,但非常不清楚如何做到这一点。 (link)
如何在不自己编写数学的情况下进行单元之间的对话?
Foundation 包含一个允许进行多种单位转换的 Measurement
结构。例如,从液体盎司转换为升:
let fluidOz = 32.0
let liters = Measurement(value: fluidOz, unit: UnitVolume.fluidOunces).converted(to: .liters).value
print(liters) // 0.946352
let degrees = 45.0
let radians = Measurement(value: degrees, unit: UnitAngle.degrees).converted(to: .radians).value
print(radians) // 0.7853981633974483
除了UnitVolume
,还有UnitSpeed
、UnitMass
等等。
https://developer.apple.com/documentation/foundation/measurement
根据您提供的 link,在使用单位下:
var value = HKQuantity(unit: .fluidOunceUS(), doubleValue: 42)
var convertedValue = value.doubleValue(for: .liter())
https://developer.apple.com/documentation/healthkit/hkquantity/1615245-doublevalue
我目前正致力于在我的应用程序中添加对体积单位的本地化支持。例如,我希望能够从液体盎司变为升,然后再变回来。基本上我想支持 HKUnit 支持的所有体积单位.dietaryWater
。
Apple 确实说过 "You can request the value from a quantity object in any compatible units."
,但非常不清楚如何做到这一点。 (link)
如何在不自己编写数学的情况下进行单元之间的对话?
Foundation 包含一个允许进行多种单位转换的 Measurement
结构。例如,从液体盎司转换为升:
let fluidOz = 32.0
let liters = Measurement(value: fluidOz, unit: UnitVolume.fluidOunces).converted(to: .liters).value
print(liters) // 0.946352
let degrees = 45.0
let radians = Measurement(value: degrees, unit: UnitAngle.degrees).converted(to: .radians).value
print(radians) // 0.7853981633974483
除了UnitVolume
,还有UnitSpeed
、UnitMass
等等。
https://developer.apple.com/documentation/foundation/measurement
根据您提供的 link,在使用单位下:
var value = HKQuantity(unit: .fluidOunceUS(), doubleValue: 42)
var convertedValue = value.doubleValue(for: .liter())
https://developer.apple.com/documentation/healthkit/hkquantity/1615245-doublevalue