我如何知道iOS上的默认测量系统(英制或公制)?
我如何知道iOS上的默认测量系统(英制或公制)?
如何从设备设置中获得此偏好设置,所以我知道要在我的应用中显示什么内容?
谢谢
NSLocale
可以告诉你:
NSLocale *locale = [NSLocale currentLocale]; BOOL isMetric = [[locale objectForKey:NSLocaleUsesMetricSystem] boolValue];
只有三个国家不使用公制:美国,利比里亚和缅甸。 后者使用自己的系统,前两个使用英制单位。
苹果文档说(强调我的):
NSLocaleUsesMetricSystem
指示区域设置是否使用公制系统的标志的关键字。 相应的值是布尔NSNumber对象。 如果该值为“否”,则通常可以采用美国的度量单位(例如,法定英里)。
在iOS 2.0及更高版本中可用。
这里是一个迅速的版本
var locale = NSLocale.currentLocale() let isMetric = locale.objectForKey(NSLocaleUsesMetricSystem) as! Bool
@DarkDust回答swift3
//User region setting return let locale = Locale.current //NSLocale.current //Returns true if the locale uses the metric system let isMetric = locale.usesMetricSystem
快3
let locale = NSLocale.current let isMetric = locale.usesMetricSystem
您应该只需在您的应用中设置一个设置,然后让用户select – 这就是Apple在Weather应用中所做的工作。
如果你想select一个合理的默认值,你可以看看语言环境。 如果是美国,则select英制,否则select公制。 这是一个启发式的,有时候会是错误的,但它只是一个可以改变的默认值。