我正在尝试使用测量格式器获取任何测量的本地化单位符号。
例如,如果区域设置使用华氏度,但应用程序将其数据存储在摄氏度中,我将创建一个测量格式化程序,如下所示:
let formatter = MeasurementFormatter()
let measurement = Measurement(value: 10, unit: UnitTemperature.celsius)
formatter.string(from: measurement)
这最后一行会给我“50°F”。 现在我想从测量中得到“°F”值。
我尝试过使用
formatter.string(from: measurement.unit)
但这只是给了我“deg.C”
提前致谢!
答案 0 :(得分:0)
您可能只需要设置格式化程序的语言环境,如下所示:
class MainActivity : AppCompatActivity {
...
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
...
sv.setSearchableInfo(sm.getSearchableInfo(componentName))
...
}
}
或者,如果您想获取设备的当前区域设置并从中进行设置,请执行以下操作:
formatter.locale = Locale(identifier: "en-US")
然后
formatter.locale = Locale.current
答案 1 :(得分:-1)
为了得到“°F”,我认为你必须将格式化程序的语言环境设置为“en_US”。
答案 2 :(得分:-1)
将我的Mac pref设置为en_US,温度为华氏温度,以下代码为我提供了Objective-C中的所需内容:
NSUnitTemperature * fahrenheit = [NSUnitTemperature fahrenheit];
NSMeasurement * measurement = [[NSMeasurement alloc] initWithDoubleValue:35 unit:fahrenheit];
NSMeasurementFormatter * formatter = [[NSMeasurementFormatter alloc] init];
NSLog(@"%@", measurement.unit.symbol); // °F
此输出:°F