我如何知道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公制。 这是一个启发式的,有时候会是错误的,但它只是一个可以改变的默认值。