- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我无法让新的 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.8ft”。
MeasurementFormatter
上的 .providedUnit
选项没有帮助——它只会给我一个以米为单位的结果。
我可以查看当前的语言环境并自己处理,但这正是 MeasurementFormatter
应该做的不必要的事情。有什么方法可以让它做我需要的事情吗?
最佳答案
您应该将格式化程序的 unitOptions
设置为 naturalScale
:
let measurementFormatter = MeasurementFormatter()
measurementFormatter.unitOptions = .naturalScale
如果您希望任何区域设置中的每个用户都可以看到特定区域设置中的值,那么您应该只设置区域设置。
关于ios - 使用 MeasurementFormatter 将米显示为英尺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39841338/
let userDefined = Measurement(value: Double(userInput.text!)!, unit: UnitMass.kilograms) let calcula
我一直在尝试使用 MeasurementFormatter 尝试将英制长度显示为 10'6" 或 10 ft 6 in 但未成功。LengthFormatter 在 isForPersonHeig
我有一个双倍距离,我希望以公里为单位显示。我正在尝试使用 MeasurementFormatter 使用下面的代码将其格式化为字符串。由于某种原因,格式化字符串以英里为单位。当前语言环境使用公制。有谁
我正在设置一个 MeasurementFormatter 对象,将 .naturalScale 用于 unitOptions 并将语言环境设置为加拿大以用于公制输出。由于某种原因,它在生成字符串时完全
我正在尝试获取使用测量格式化程序获得的任何测量的本地化单位符号。 例如,如果语言环境使用华氏度,但应用程序以摄氏度存储数据,我将创建一个测量格式化程序,如下所示: let formatter = Me
当我在 Playground 中运行以下代码时,格式化字符串返回为 nil。我在派生的自定义测量类中缺少什么? open class UnitFlowRate : Dimension { op
我无法让新的 MeasurementFormatter 类给我以适当单位的结果。我有以米为单位的值,我想以本地化的字符串显示,米或英尺取决于用户的区域设置。 我有这个: let meters : Do
这类似于 question I asked yesterday但我得到的答案在这种情况下似乎不起作用。 我从 Core Location 获取以米为单位的高度值。我想以本地化形式显示这些。例如,我现在
当输入以下代码时: let formatter = MeasurementFormatter() let measurement = Measurement(value: 1000, unit: Un
已解决感谢Martin R这已经通过必须将 locale 放在第一位来解决。所以: import Foundation let formatter = MeasurementFormatter() f
我是一名优秀的程序员,十分优秀!