从设置应用中查找温度单位

时间:2017-05-09 10:16:07

标签: ios iphone swift3

我正在使用Swift 3中的iOS应用程序,我需要从设置应用程序(Celsius或Fahrenheit)获取用户首选的温度单位。我尝试找到解决方案,但没有成功。 :( 任何人都可以建议如何做到这一点。

提前致谢!

3 个答案:

答案 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

例如 enter image description here

答案 2 :(得分:0)

未记录kCFLocaleTemperatureUnitKey密钥。所以苹果可能有问题。请阅读this thread了解更多信息。由于这个关键,他的应用被拒绝了。

let locale = NSLocale.current as NSLocale
let obj = locale.object(forKey: NSLocale.Key(rawValue: "kCFLocaleTemperatureUnitKey"))
print("\(obj!)")