格式化速度 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
。
HKQuantity
的 description
方法不是 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
我希望能够以本地化形式格式化和打印速度。我发现了一些 pods 可以做到这一点,但我正在寻找嵌入式解决方案(如果可能的话)。
目前我接下来要做的是:
let unit = HKUnit.meterUnit(with: .kilo).unitDivided(by: .hour())
let output = HKQuantity(unit: unit, doubleValue: 12.5).description
但在这种情况下,我无法调整任何东西,例如使用 h
而不是 hr
。
HKQuantity
的 description
方法不是 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