iOS8 - 从区域设置获取国家/地区名称

时间:2014-06-27 11:03:27

标签: ios8 nslocale

我使用此代码获取国家/地区列表:

for (NSString *code in [NSLocale ISOCountryCodes])
{
    NSString *identifier = [NSLocale localeIdentifierFromComponents:@{NSLocaleCountryCode: code}];
    NSString *countryName = [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:identifier];
    NSLog(countryName);
}

这在iOS 7.x中运行良好但在iOS8(beta 2)中失败 - countryName始终为 nil

有人找到了替代品吗?

2 个答案:

答案 0 :(得分:5)

我在iOS 8上也遇到过这样的问题。尝试使用systemLocale代替currentLocale

答案 1 :(得分:0)

    let currentLocale : NSLocale = NSLocale.init(localeIdentifier :  NSLocale.current.identifier)
    let countryName : String? = currentLocale.displayName(forKey: NSLocale.Key.countryCode, value: countryCode)
    print(countryName ?? "Invalid country code")

注意:如果您手动输入localIdentifier,则表示IOS 8未列出所有国家/地区名称(例如:" en_US")