格式化速度 Swift

Format speed in Swift

我希望能够以本地化形式格式化和打印速度。我发现了一些 pods 可以做到这一点,但我正在寻找嵌入式解决方案(如果可能的话)。

目前我接下来要做的是:

 let unit = HKUnit.meterUnit(with: .kilo).unitDivided(by: .hour())
 let output = HKQuantity(unit: unit, doubleValue: 12.5).description

但在这种情况下,我无法调整任何东西,例如使用 h 而不是 hr

HKQuantitydescription 方法不是 return 本地化值,它用于调试,而不是用于显示。将 HKQuantity 实例转换为 NSMeasurement 并使用 NSMeasurementFormatter(文档 here)本地化显示值。

如@Allan 所述,我们必须使用 MeasurementFormatter。查看下面的即用型解决方案。

import UIKit
import HealthKit

let value = NSMeasurement(doubleValue: 12.5, unit: UnitSpeed.milesPerHour)
let formatter = MeasurementFormatter()
formatter.numberFormatter.maximumFractionDigits = 2
formatter.string(from: value as Measurement<Unit>) // prints 12.5 mph