在我的应用程序中,我有一定的距离,以米为单位。如何知道用户是喜欢英里还是公里?
而且,如果用户偏好公里并以英里显示(如果用户偏好里程),我想以千米显示。在第一种情况下,我想在最后添加一个字符串“千米”,并在第二个字段中添加“英里数”。
实现此目标的最佳方法是什么?
谢谢。
在我的应用程序中,我有一定的距离,以米为单位。如何知道用户是喜欢英里还是公里?
而且,如果用户偏好公里并以英里显示(如果用户偏好里程),我想以千米显示。在第一种情况下,我想在最后添加一个字符串“千米”,并在第二个字段中添加“英里数”。
实现此目标的最佳方法是什么?
谢谢。
除非iPhone直接提供这些信息,否则您必须有一个从区域设置到默认设备的查询表。那么你应该允许用户覆盖该默认值。
它确实直接提供,请参阅我的回答:) – Chris 2012-09-11 05:22:35
您可以询问用户他们偏好英里还是公里,偏好或其他。然后,每当你显示一个距离,你会说。
在伪C代码
function distance(meters) {
if (userPrefersKM) {
return meters/1000 + " kilometers";
else if (userPrefersMiles) {
return meters/METERS_IN_A_MILE + " miles";
}
凡METERS_IN_A_MILE
将是约1600年,但你应该看看这件事。
要确定用户是否使用公制或没有,NSLocale可以告诉你:
- (BOOL)isMetric {
return [[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue];
}
斯威夫特相当于克里斯的回答会是这样的:
func isMetric() -> Bool {
return ((Locale.current as NSLocale).object(forKey: NSLocale.Key.usesMetricSystem) as? Bool) ?? true
}
注意它在某些情况下,默认为true
。根据需要更改。
为什么不让它成为用户偏好? – ceejayoz 2009-07-27 17:24:19
阅读关于iPhone语言环境的[文章](http://www.iphonesdkarticles.com/2008/11/localizing-iphone-apps-part-1.html)。 ==更新==原来的链接不再工作,[这里是缓存版本](https://web.archive.org/web/20130126031830/http://www.iphonesdkarticles.com/2008/11/本地化-iPhone应用程序 - 部分 - 1.HTML)。 – 2009-07-27 17:25:59