我正在使用Swift 3中的iOS应用程序,我需要从设置应用程序(Celsius或Fahrenheit)获取用户首选的温度单位。我尝试找到解决方案,但没有成功。 :( 任何人都可以建议如何做到这一点。
提前致谢!
答案 0 :(得分:2)
这可以使用swift中的MeasurementFormatter来完成。
此方法不使用任何私有API。请记住在实际设备(iOS 10+)上运行此操作,因为模拟器没有该选项。
let formatter = MeasurementFormatter.init()
let temperature = Measurement.init(value: 37.0, unit: UnitTemperature.celsius)
let localTemperature = formatter.string(from: temperature)
if(localTemperature.contains("C")) {
print("UNIT IS °C")
} else {
print("UNIT IS °F")
}
答案 1 :(得分:0)
您需要公开类型为NSLocaleKey的NSLocaleTemperatureUnit,
NSLocale *locale = [NSLocale currentLocale];
__unused id info = [locale objectForKey:NSLocaleTemperatureUnit];
然后,您将能够根据温度单位NSLocaleKey访问NSLocale信息。
INFO Kafka version : 0.10.2.0
答案 2 :(得分:0)
未记录kCFLocaleTemperatureUnitKey
密钥。所以苹果可能有问题。请阅读this thread了解更多信息。由于这个关键,他的应用被拒绝了。
let locale = NSLocale.current as NSLocale
let obj = locale.object(forKey: NSLocale.Key(rawValue: "kCFLocaleTemperatureUnitKey"))
print("\(obj!)")