2017-05-09 62 views
1

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

提前感谢!

回答

0

您需要公开类型NSLocaleKey的NSLocaleTemperatureUnit,

FOUNDATION_EXPORT NSLocaleKey const NSLocaleTemperatureUnit; 

然后,你将能够访问NSLocale信息基础温度单位NSLocaleKey。

NSLocale *locale = [NSLocale currentLocale]; 
__unused id info = [locale objectForKey:NSLocaleTemperatureUnit]; 

例如 enter image description here

+0

我发现堆栈溢出的代码,你可以分享swift 3等效,我没有找到相当于Swift 3中的NSLocaleTemperatureUnit –

0

kCFLocaleTemperatureUnitKey密钥没有记录。所以苹果可能会遇到问题。请阅读this thread了解更多信息。因为这个关键,他的应用程序被拒绝了。

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

这可以用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") 
    } 
相关问题