我無法使新的MeasurementFormatter
類以適當的單位給出結果。我希望以本地化字符串(米或英尺)顯示的米數值,具體取決於用戶的區域設置。使用MeasurementFormatter以英尺顯示儀表
我有這樣的:
let meters : Double = 10
let metersMeasurement = Measurement(value: meters, unit: UnitLength.meters)
let measurementFormatter = MeasurementFormatter()
measurementFormatter.locale = Locale(identifier: "en_US")
let localizedString = measurementFormatter.string(from: metersMeasurement)
這給了我 「0.006mi」 的字符串。我想,這是正確的,但將10米轉換爲英里有點荒謬。我想要的是「32.8英尺」。
MeasurementFormatter
上的.providedUnit
選項沒有幫助 - 這隻會給我一個以米爲單位的結果。
我可以查看當前的語言環境並自己處理,但這正是MeasurementFormatter
應該不必要的那種類型。有什麼辦法讓它做我需要的嗎?
在您的單元格式化程序中設置'naturalScale'選項https://developer.apple.com/reference/foundation/measurementformatter.unitoptions/1642065-naturalscale – Paulw11
除了naturalScale,您需要將數字格式化程序的最大數字設置爲1'measurementFormatter .numberFormatter.maximumFractionDigits = 1' –
@LeoDabus這將是可選的。 – rmaddy