Dan*_*gan 43 iphone xcode cocoa-touch objective-c ios
我有一个菜单让用户选择一个国家.与地址字段中的contacts.app国家/地区菜单中的内容完全相同.
有谁知道获取国家列表的简单方法?我已经使用NSLocale来生成一系列国家,但遗憾的是它只是国家代码而不是人类可读的等价物.我不想'GB'我想要英国.
Dan*_*gan 94
谢谢你.
如果有人感兴趣或想要找到相同的解决方案,这里是我的代码,用于排序的国家/地区.
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:)];
Run Code Online (Sandbox Code Playgroud)
迅速:
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, <)
Run Code Online (Sandbox Code Playgroud)
斯威夫特3
let locale = NSLocale.current
let unsortedCountries = NSLocale.isoCountryCodes.map { locale.localizedString(forRegionCode: $0)! }
let sortedCountries = unsortedCountries.sorted()
Run Code Online (Sandbox Code Playgroud)
Chu*_*uck 38
使用[[NSLocale currentLocale] displayNameForKey:NSLocaleCountryCode value:countryCode]
(其中countryCode是国家/地区代码列表中的项目)可以在用户的当前区域设置中获取国家/地区的名称.
小智 15
您可能想要定义区域设置..
并且有太多自动释放的内存,这可能是关键的,您永远不会知道.所以在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:)];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26608 次 |
最近记录: |