Подтвердить что ты не робот

Поиск текущей страны с устройства iPhone

Мне нужно установить текущую страну в настройках iPhone. Может ли кто-нибудь сказать мне, как получить текущую страну в приложении iPhone.

Мне нужно использовать текущую страну для разбора RSS-канала, в котором мне нужно передать текущую страну.

Пожалуйста, помогите мне найти страну.

Спасибо заранее.

4b9b3361

Ответ 1

Чтобы найти страну выбранного пользователем языка:

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 answer.

Если вы хотите найти код страны на физическом месте устройства, вам понадобится CoreLocation с обратным геокодированием. Подробнее см. Этот вопрос: Как получить текущее местоположение от пользователя в iOS.

Ответ 2

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

Ответ 3

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

Ссылка источника.

Ответ 4

Если вы тестируете и хотите использовать другой язык из своей системы, проще всего изменить параметры схемы Application Language и Application Region вместо изменения языка и региона на вашем устройстве или симуляторе.

Перейдите к ProductSchemeEdit Scheme...RunOptions и выберите теги Application Language и Application Region, которые вы хотите проверить.

Изменить язык приложения и область приложения в пределах параметров запуска схемы

Из документации iOS: Тестирование вашего интернационализированного приложения

Ответ 5

NSTimeZone *gmt = [NSTimeZone localTimeZone];

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

Ответ 6

Swift 3.0 решение

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

Ответ 7

Для устройств с SIM-картой вы можете использовать это:

  CTTelephonyNetworkInfo * network_Info = [CTTelephonyNetworkInfo new];
  CTCarrier * carrier = network_Info.subscriberCellularProvider;
  NSString  * countryCode = [carrier.isoCountryCode uppercaseString];

Ответ 8

Последний рабочий код Swift 3.0

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