NSLocale
с радостью сообщит вам символ валюты, используемый определенной локалью:
[locale objectForKey:NSLocaleCurrencySymbol];
Он также сообщит вам код валюты:
[locale objectForKey:NSLocaleCurrencyCode];
Итак, все, что вам нужно сейчас сделать, - это найти локаль, соответствующую данному коду. Нет встроенного метода (который я знаю), чтобы сделать это напрямую, поэтому переберите все известные локали и выберите тот, который соответствует. У ответа * Умки есть хороший пример этого в методе -findLocaleByCurrencyCode:
.
Вы можете оптимизировать процесс, создав собственную таблицу поиска, вместо того чтобы каждый раз повторять все локали. Возможно, вам также придется учесть возможность дублирования кодов валют, что потребует некоторой эвристики для выбора наиболее вероятной локали.