iOSでデバイスの位置情報(国のみ)を取得する 質問する

iOSでデバイスの位置情報(国のみ)を取得する 質問する

iOS デバイスの国の場所を取得する必要があります。

私は CoreLocation を MKReverseGeocoder と一緒に使用しようとしています。しかし、これはかなり頻繁にエラーを返すようです。また、必要なのは国名だけで、通りなどは必要ありません。

これをより安定した方法で行うにはどうすればよいでしょうか?

ベストアンサー1

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

たとえば、「US」(米国)、「ES」(スペイン) などの識別子が取得されます。


スイフト3:

let countryCode = NSLocale.current.regionCode

スウィフト2.2:

let countryCode = NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as String

CLLocationManager に基づくソリューションと比較すると、このアプローチには長所と短所があります。主な短所は、ユーザーが設定を変えた場合、これがデバイスの物理的な位置であるとは保証されないことです。ただし、これは長所とも言えます。ユーザーが精神的/文化的にどの国に同調しているかを示すためです。たとえば、休暇で海外に行く場合でも、ロケールは母国に設定されます。ただし、この API は CLLocationManager のようにユーザーの許可を必要としないという大きな利点があります。そのため、ユーザーの位置情報を使用する許可をまだ得ておらず、ユーザーにポップアップ ダイアログを表示することを正当化できない場合 (またはユーザーがすでにそのポップアップを拒否していてフォールバックが必要な場合)、この API を使用するのが適切でしょう。この API の一般的な使用例としては、パーソナライゼーション (文化的に関連のあるコンテンツ、デフォルトの形式など) や分析などが挙げられます。

おすすめ記事