有没有办法获取用户的当前NSLocaleCountryCode?

时间:2016-07-18 05:38:08

标签: ios objective-c nslocale

我目前正在获取 NSLocaleCountryCode  NSLocale *currentLocale = [NSLocale currentLocale]; NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];现在,问题是iPhone或iPad是从某个国家购买的还是用户移动到另一个国家/地区。 NSLocaleCountryCode返回购买设备的国家/地区的值。有没有办法获得 Current NSLocaleCountryCode?

1 个答案:

答案 0 :(得分: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);