我正在开发一个应用程序,它会要求用户输入电话号码,并有一个国家选择器,用户需要在其中输入国家代码。
但是在测试空的国家代码值时,我发现我的iOS 10.2.1的iPhone设置了区域格式为欧洲。
当我搜索区域列表时,没有找到欧洲地区。
当我尝试获取当前语言环境的国家代码时,
NSLocale *currentLocale = [NSLocale currentLocale];
return [currentLocale objectForKey:NSLocaleCountryCode]
我得到了en_150
,但这对于确定用户所在的国家来说没有用处,至少在我的设备上。返回的国家代码是150,但这个代码不存在。
我发现了一种通过使用CTTelephonyNetworkInfo
来找到国家代码的方法。
if(![currentLocale objectForKey:NSLocaleCountryCode]) {
CTCarrier *carrier = [[CTTelephonyNetworkInfo new] subscriberCellularProvider];
NSString *countryCode = carrier.isoCountryCode;
return [countryCode capitalizedString];
}
但是,这个欧洲语言环境是如何工作的,为什么我要将它设置为这样呢?