2009-07-27 4 views
7

私のアプリでは、ある距離をメートルで持っています。ユーザーがマイルまたはキロメートルを好むかどうかを知る方法?

そして、ユーザーがマイルを好む場合は、それをキロメートルで表示し、ユーザーがマイルを好む場合はマイルで表示したいと考えています。そして、最初のケースでは、 "マイル"を追加するために、最後に "キロメートル"、2番目に文字列に追加したいと思います。

この目標を達成する最良の方法は何ですか?

ありがとうございました。

+0

なぜユーザーの好みにしませんか? – ceejayoz

+0

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/) localizing-iphone-apps-part-1.html)を参照してください。 –

答えて

0

iPhoneがこの情報を直接提供しない限り、ロケールからデフォルトユニットまでのルックアップテーブルが必要です。次に、ユーザーがそのデフォルトを上書きできるようにする必要があります。

+0

それは直接それを提供しています、私の答えを参照してください:) – Chris

1

あなたは、好みや何かでマイルやキロメートルを好むかどうかをユーザーに問い合わせることができます。そして、距離を表示するたびにあなたは言うでしょう。擬似Cコードで

METERS_IN_A_MILEは約1600になりますが、あなたはそれを調べる必要があります

function distance(meters) { 
    if (userPrefersKM) { 
     return meters/1000 + " kilometers"; 
    else if (userPrefersMiles) { 
     return meters/METERS_IN_A_MILE + " miles"; 
} 

。ユーザーがメトリックかを使用するかどうかを決定するため

+0

マイルで1609.344メートル –

14

、NSLocaleはあなたを伝えることができます。

func isMetric() -> Bool { 
    return ((Locale.current as NSLocale).object(forKey: NSLocale.Key.usesMetricSystem) as? Bool) ?? true 
} 

なお、それ:クリスの答えはこのようなものになるだろうの

- (BOOL)isMetric { 
    return [[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue]; 
} 
1

スウィフト同等の状況によってはデフォルトでtrueになります。必要に応じて変更してください。

関連する問題