我使用此代码获取国家/地区列表:
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 。
有人找到了替代品吗?
答案 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")