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