Получение символа валюты и кода валюты на основе ISOCountryCode

Есть похожие вопросы от таких новичков, как я, в локализации, но я не смог найти ни одного, который помог бы мне.

Вот моя проблема. Мы можем получить все коды стран ISO в NSArray с помощью оператора формы [NSLocale ISOCountryCodes]. Теперь для каждой из этих стран я хотел бы напечатать местную валюту, а также код валюты, используемый в этой стране. Что было бы подходящим способом сделать это?

Я сделал следующее, что не работает в том смысле, что я получаю строки вида США Соединенные Штаты: (нулевой) ((нулевой)) когда вместо этого я хотел бы получить строки вида США Соединенные Штаты: $ (USD):

myCountryCode = [[NSLocale ISOCountryCodes] objectAtIndex:row];
appLocale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US"];
identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary
                      dictionaryWithObject: myCountryCode 
                                    forKey: NSLocaleCountryCode]];
myDictionary = [NSLocale componentsFromLocaleIdentifier: identifier];
myCountryName = [appLocale displayNameForKey:NSLocaleCountryCode 
                                       value:[myDictionary
                                             objectForKey:NSLocaleCountryCode]];
localCurrencySymbol = [appLocale displayNameForKey:NSLocaleCurrencySymbol
                      value:[myDictionary objectForKey:NSLocaleCurrencySymbol]];
currencyCode = [appLocale displayNameForKey:NSLocaleCurrencyCode 
                value: [myDictionary objectForKey:NSLocaleCurrencyCode]];
title = [NSString stringWithFormat:@"%@ %@: %@ (%@)", myCountryCode, myCountryName, localCurrencySymbol, currencyCode];
[appLocale release];

(Вышеуказанный идентификатор, myCountryCode, myCountryName, localCurrencySymbol, currencyCode и title являются указателями NSString. Кроме того, myDictionary является указателем NSDictionary, а appLocale — указателем NSLocale). По сути, приведенный выше код будет в окне выбора, где я хочу генерировать заголовок каждой строки на лету.

Большое спасибо за ваше время. По сути, вопрос заключается в том, что если у нас есть код страны ISO, как мы можем напечатать (в локали приложения) символ валюты и код валюты для этой конкретной страны.

5
задан Vadim Kotov 10 April 2018 в 15:33
поделиться