当前位置:  开发笔记 > IOS > 正文

Iphone,获取NSArray中的国家列表

如何解决《Iphone,获取NSArray中的国家列表》经验,为你挑选了3个好方法。

我有一个菜单让用户选择一个国家.与地址字段中的contacts.app国家/地区菜单中的内容完全相同.

有谁知道获取国家列表的简单方法?我已经使用NSLocale来生成一系列国家,但遗憾的是它只是国家代码而不是人类可读的等价物.我不想'GB'我想要英国.



1> Dan Morgan..:

谢谢你.

如果有人感兴趣或想要找到相同的解决方案,这里是我的代码,用于排序的国家/地区.

Objective-C的:

NSLocale *locale = [NSLocale currentLocale];
NSArray *countryArray = [NSLocale ISOCountryCodes];

NSMutableArray *sortedCountryArray = [[NSMutableArray alloc] init];

for (NSString *countryCode in countryArray) {

    NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];
    [sortedCountryArray addObject:displayNameString];

}

[sortedCountryArray sortUsingSelector:@selector(localizedCompare:)];

迅速:

let locale = NSLocale.currentLocale()
let countryArray = NSLocale.ISOCountryCodes()
var unsortedCountryArray:[String] = []
for countryCode in countryArray {
    let displayNameString = locale.displayNameForKey(NSLocaleCountryCode, value: countryCode)
    if displayNameString != nil {
        unsortedCountryArray.append(displayNameString!)
    }
}
let sortedCountryArray = sorted(unsortedCountryArray, <)

斯威夫特3

    let locale = NSLocale.current
    let unsortedCountries = NSLocale.isoCountryCodes.map { locale.localizedString(forRegionCode: $0)! }
    let sortedCountries = unsortedCountries.sorted()



2> Chuck..:

使用[[NSLocale currentLocale] displayNameForKey:NSLocaleCountryCode value:countryCode](其中countryCode是国家/地区代码列表中的项目)可以在用户的​​当前区域设置中获取国家/地区的名称.



3> 小智..:

您可能想要定义区域设置..
并且有太多自动释放的内存,这可能是关键的,您永远不会知道.所以在for循环中创建自动释放池.我是这样的:

NSMutableArray * countriesArray = [[NSMutableArray alloc] init]; 
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier: @"en_US"] autorelease];

NSArray *countryArray = [NSLocale ISOCountryCodes]; 
for (NSString *countryCode in countryArray) 
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSString *displayNameString = [locale displayNameForKey:NSLocaleCountryCode value:countryCode];
    [countriesArray addObject:displayNameString];
    [pool release];

}

[countriesArray sortUsingSelector:@selector(compare:)];

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有