如何从NSLocale获取具有相应货币和语言的国家/地区列表?

时间:2016-01-09 03:17:50

标签: ios swift nslocale

我想获得一份包含相应语言和货币的国家/地区列表。

首先,我创建了我的类来存储我需要的信息:

class Country: NSObject {

    var localeID:String?
    var name:String?
    var code:String?
    var currencyCode:String?
    var currencySymbol:String?
    var currencyName:String?
    var languageCode:String?
    var languageName:String?
}

然后我用ISOCountryCodes开始迭代:

    let countriesISOCodes = NSLocale.ISOCountryCodes()
    for country in countriesISOCodes {
         // code here .....
    }

然后我尝试在 for loop 中获取国家/地区名称:

    let anyLocale = NSLocale(localeIdentifier: country)
    country.name = anyLocale.displayNameForKey(NSLocaleCountryCode, value : code)

在我尝试获取 currencyCode currencySymbol currencyName之前,一切都很棒 languageCode languageName

我尝试了NSLocale.objectForKeyNSLocale.displayNameForKey的一系列组合,但没有任何效果。

您知道我如何获得使用ISOCountryCode的国家/地区列表以及相应的货币和语言信息吗?

2 个答案:

答案 0 :(得分:1)

以下是相关键和值类型的列表:

NSLocale component keys

使用函数objectForKey检索值。

答案 1 :(得分:0)

如果您选中currentLocale()方法,则localeIdentifier是字符串格式,例如" en_CN"。 ISOCountryCode()方法只返回一个国家/地区代码列表,每个代码都是localeIdentifier的一部分。您可以改用NSLocale.availableLocaleIdentifiers()。

let countriesIdentifiers = NSLocale.availableLocaleIdentifiers()
for country in countriesIdentifiers {

let anyLocale = NSLocale(localeIdentifier: country)
// code here .....
}