Преобразование кодов стран в названия стран

Мне нужно преобразовать список кодов стран в массив стран. Вот что я сделал до сих пор.

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    pickerViewArray = [[NSMutableArray alloc] init]; //pickerViewArray is of type NSArray;
    pickerViewArray =[NSLocale ISOCountryCodes];
}
28
задан HAS 28 July 2016 в 12:12
поделиться

1 ответ

Вы можете получить идентификатор для кода страны с помощью localeIdentifierFromComponents:, а затем получить его displayName.

Итак, чтобы создать массив с названиями стран, вы можете сделать:

NSMutableArray *countries = [NSMutableArray arrayWithCapacity: [[NSLocale ISOCountryCodes] count]];

for (NSString *countryCode in [NSLocale ISOCountryCodes])
{
    NSString *identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary dictionaryWithObject: countryCode forKey: NSLocaleCountryCode]];
    NSString *country = [[NSLocale currentLocale] displayNameForKey: NSLocaleIdentifier value: identifier];
    [countries addObject: country];
}

Для сортировки по алфавиту вы можете добавить

NSArray *sortedCountries = [countries sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

. .

56
ответ дан 28 November 2019 в 02:17
поделиться