在我的應用程序中,我有一定的距離,以米爲單位。如何知道用戶是喜歡英里還是公里?
而且,如果用戶偏好公里並以英里顯示(如果用戶偏好里程),我想以千米顯示。在第一種情況下,我想在最後添加一個字符串「千米」,並在第二個字段中添加「英里數」。
實現此目標的最佳方法是什麼?
謝謝。
在我的應用程序中,我有一定的距離,以米爲單位。如何知道用戶是喜歡英里還是公里?
而且,如果用戶偏好公里並以英里顯示(如果用戶偏好里程),我想以千米顯示。在第一種情況下,我想在最後添加一個字符串「千米」,並在第二個字段中添加「英里數」。
實現此目標的最佳方法是什麼?
謝謝。
除非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