2

ユーザーが現在どの国にいるかを検出するために使用NSLocaleしています。ユーザーが米国内にいるかどうかを確認したい場合

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];  

if ([countryCode isEqualToString:@"US"]) {
///////
}

それはチェックする正しい方法ですか?

4

2 に答える 2

5

NSLocaleユーザーの場所ではなく、ユーザーの言語的および文化的な好みを示すだけです。ユーザーの物理的な場所を知りたい場合は、CoreLocationAPIを使用する必要があります。

于 2011-11-27T11:33:43.160 に答える
2

これは「はい」と「いいえ」の答えです。

はい、これにより、ユーザーの現在の優先ロケールがわかります。 そして、あなたのような他の質問から判断すると、他の人々はこの答えが「十分に良い」と判断しました。

ただし、iPhoneを持って中国にいる可能性があり、英語を使用している場合は、countryCodeが「US」を返すと思います。

ユーザーの現在の国を本当に知りたい場合は、CoreLocationを使用して逆ジオコーディングを行うことができます。CoreLocation座標を使用すると、http://ws.geonames.org/findNearby?lat = 47.3&lng=9のようなルックアップを実行できます。MKReverseGeocoder(iOS 5.0で非推奨)とGLGeocoder – reverseGeocodeLocation:completionHandler:(ドキュメントがリンクされています)もあります。

于 2011-11-27T11:38:08.333 に答える