2016-07-18 4 views
-1

Я в настоящее время получаю NSLocaleCountryCode от NSLocale *currentLocale = [NSLocale currentLocale]; NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode]; Теперь проблема в том, что iPhone или iPad куплены из определенной страны, а пользователь переезжает в другую страну. NSLocaleCountryCode возвращает значение страны, где приобретается устройство. Есть ли способ получить Текущий NSLocaleCountryCode?Есть ли способ получить текущий NSLocaleCountryCode пользователя?

+1

Параметр 'NSLocaleCountryCode' не имеет ничего общего с тем, где было приобретено устройство или там, где он в настоящее время находится. Он основан на настройке в приложении «Настройки» для «Общие», «Язык и регион», «Регион». – rmaddy

+0

Что вы подразумеваете под «текущим» кодом страны? Что именно вы пытаетесь получить? – rmaddy

+0

@rmaddy Например, устройство куплено в США. Итак, NSLocaleCountryCode установлен в США? Затем пользователь переезжает в другую страну, говорят в Канаде. И я пытаюсь получить CA, «текущий» код страны телефона – drbj

ответ

3

NSLocale просто установка о применяемых в настоящее время региональные настройки, это не означает фактическую страну вы находитесь.

Используйте CLLocationManager, чтобы получить текущее местоположение и использовать CLGeocoder для выполнения обратного геокодирования-. Вы можете получить название страны от CLGeocoder.

если вам нужна дополнительная помощь, см этого alternate way

ОБНОВЛЕНО ответ

CLGeocoder *reverseGeocoder = [[CLGeocoder alloc] init]; 

[reverseGeocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { 
// NSLog(@"Received placemarks: %@", placemarks); 

CLPlacemark *myPlacemark = [placemarks objectAtIndex:0]; 
NSString *countryCode = myPlacemark.ISOcountryCode; 
NSString *countryName = myPlacemark.country; 
NSString *cityName= myPlacemark.subAdministrativeArea; 
NSLog(@"My country code: %@ and countryName: %@ MyCity: %@", countryCode, countryName, cityName); 
+0

Могу ли я получить код страны от CLGeocoder? – drbj

+0

@drbj - проверьте обновленный ответ и укажите ссылку https://ktrkathir.wordpress.com/2014/12/31/get-city-country-name-from-latitudelongitude-by-using-clgeocoder-in-ios/ –

+0

Откуда появился новый сайт? – drbj

Смежные вопросы