从简短的NSLocal标识符获取国家/地区代码

时间:2017-09-24 10:34:30

标签: objective-c nslocale

   NSLocale *currentLocale = [NSLocale localeWithLocaleIdentifier:@"en"]; 
   NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
   NSLog(@"countryCode %@",countryCode);

尝试从 SHORT localIdentifier

获取ISOCountryCode
  • (我正在使用全世界的标识符)
  • 尝试返回CountryCode(英文)

      

    例如:“en_UK”返回值,但只有“en”返回nil。

  • localeWithLocaleIdentifier:@“en_UK”==确定

  • localeWithLocaleIdentifier:@“en”== not ok

1 个答案:

答案 0 :(得分:3)

如果您的Locale ID只是它代表的语言代码:

  

使用语言的未指定区域。

因此en没有国家/地区代码,许多地区都使用英语。如果您需要代表语言和区域的en_GB,请指定包含区域代码的区域设置ID,例如NSLocale

如果您希望发现系统知道使用特定语言的所有区域,请查看NSLocale的{​​{1}}类方法。

HTH