首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从IOS中的国家名称获取国家代码

问从IOS中的国家名称获取国家代码
EN

Stack Overflow用户
提问于 2012-10-01 18:48:30
回答 9查看 34.3K关注 0票数 24

我正在从服务器上检索英文的国家名称。例如,“西班牙”

我想做的是,假设国家/地区名称将用英语书写,获取国家/地区代码。

我该怎么办?我发现从国家代码中获取国家名称非常容易,但我不知道如何做相反的操作。

非常感谢。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-11-30 17:39:51

Jef的answer在这一点上有所帮助,只是做了一些细微的补充。

代码语言:javascript
复制
NSArray *countryCodes = [NSLocale ISOCountryCodes];
NSMutableArray *countries = [NSMutableArray arrayWithCapacity:[countryCodes count]];

for (NSString *countryCode in countryCodes)
{
    NSString *identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary dictionaryWithObject: countryCode forKey: NSLocaleCountryCode]];
    NSString *country = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_UK"] displayNameForKey: NSLocaleIdentifier value: identifier];
    [countries addObject: country];
}

NSDictionary *codeForCountryDictionary = [[NSDictionary alloc] initWithObjects:countryCodes forKeys:countries];

现在使用您需要代码的国家/地区的名称来查看“codeForCountryDictionary”,例如,

代码语言:javascript
复制
NSLog(@"%@",[codeForCountryDictionary objectForKey:@"Spain"]);

将生成的结果为“ES”,这是西班牙的2个字母的国家/地区代码。

票数 30
EN

Stack Overflow用户

发布于 2018-02-14 23:28:51

Swift 4更新版本的@Daxesh Nagar解决方案:

代码语言:javascript
复制
private func locale(for fullCountryName : String) -> String {
    var locales : String = ""
    for localeCode in NSLocale.isoCountryCodes {
        let identifier = NSLocale(localeIdentifier: localeCode)
        let countryName = identifier.displayName(forKey: NSLocale.Key.countryCode, value: localeCode)
        if fullCountryName.lowercased() == countryName?.lowercased() {
            return localeCode as! String
        }
    }
    return locales
}

对于此输入,作为fullCountryName

“英国”

它将返回国家代码,如下所示

"GB“

希望对你们有帮助!

票数 13
EN

Stack Overflow用户

发布于 2015-08-19 18:59:16

在Swift中,您将使用以下代码

代码语言:javascript
复制
extension NSLocale {
    class func locales1(countryName1 : String) -> String {
        var locales : String = ""
        for localeCode in NSLocale.ISOCountryCodes() {
            let countryName = NSLocale.systemLocale().displayNameForKey(NSLocaleCountryCode, value: localeCode)!
            if countryName1.lowercaseString == countryName.lowercaseString {
                return localeCode as! String
            }
        }
        return locales
    }


}

获取数据:

代码语言:javascript
复制
strP2countrycode = NSLocale.locales1("PASS_COUNTRYNAME")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12671829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档