web-dev-qa-db-ja.com

iPhoneデバイスから現在の国を見つける

IPhoneの設定で現在の国を取得する必要があります。 iPhoneアプリケーションで現在の国を取得する方法を教えてください。

現在の国を渡す必要があるRSSフィードの解析には、現在の国を使用する必要があります。

国を見つけるのを手伝ってください。

前もって感謝します。

49
AppAspect

ユーザーが選択した言語の国を見つけるには:

NSLocale *currentLocale = [NSLocale currentLocale];  // get the current locale.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
// get country code, e.g. ES (Spain), FR (France), etc.

Swiftの場合:

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

現在のタイムゾーンの国コードを検索する場合は、 @ chings228's answer を参照してください。

デバイスの物理的な場所の国コードを検索する場合は、逆ジオコーディングでCoreLocationが必要になります。詳細については、この質問を参照してください。 iOSのユーザーから現在地を取得する方法

135
kennytm
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];
17

Swift 4.0、

単純に使用できます

_let countryCode = Locale.current.regionCode_

print(countryCode)

9
Mehul Thakkar

SIMカードを搭載したデバイスの場合、これを使用できます。

  CTTelephonyNetworkInfo * network_Info = [CTTelephonyNetworkInfo new];
  CTCarrier * carrier = network_Info.subscriberCellularProvider;
  NSString  * countryCode = [carrier.isoCountryCode uppercaseString];
9
user2248258
NSLocale *countryLocale = [NSLocale currentLocale];  
NSString *countryCode = [countryLocale objectForKey:NSLocaleCountryCode];
NSString *country = [countryLocale displayNameForKey:NSLocaleCountryCode value:countryCode];
NSLog(@"Country Code:%@ Name:%@", countryCode, country);
//Country Code:IN Name:India

ソースリンク

9
NSTimeZone *gmt = [NSTimeZone localTimeZone];

NSLog(@"timezone gmt %@",gmt.abbreviation);
5
chings228

テスト中にシステムとは異なる言語を使用する場合は、デバイスまたはシミュレーターの言語と地域を変更するのではなく、スキームのApplication LanguageおよびApplication Regionオプションを変更するのが最も簡単です。

Product-> Scheme-> Edit Scheme...-> Run-> Optionsに移動して、Application LanguageおよびApplication Regionテストします。

Edit Application Language and Application Region within Scheme Run Options

IOSドキュメントから: 国際化アプリのテスト

5
Heath Borders

Swift 3.0の最新の作業コードは

if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String {
    print(countryCode)
}
3
Muhammad Nayab

Swift 3.ソリューション

if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String {
            print(countryCode)
        }
3
Sourabh Sharma