Список стран, использующих NSLocaleCountryCode - PullRequest
6 голосов
/ 24 августа 2011

Я хочу, чтобы приложение могло меняться в зависимости от местоположения пользователя.Я использую код ниже:

NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
    NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
    NSString *countryName = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];
    NSLog(@"countryName %@", countryName);

, который прекрасно работает, но я хочу знать, как будут отображаться countryName, поэтому я могу настроить переключатели, что сложно, если вы не знаетекак именно пишется каждая страна: США, США, США и т. д. Есть ли список кодов стран от Apple, я не могу их найти.

Также есть ли способ убедиться, что результат на английском языке?

Ответы [ 3 ]

9 голосов
/ 24 августа 2011

Apple использует стандарт ISO ISO-3166 .

7 голосов
/ 21 августа 2014

«Стандарт ISO ISO-3166» является точным в большинстве случаев, но попробуйте выбрать «Европа» в качестве региона в настройках iOS. Вы получите возвращаемое значение «150». Почему "150"? Похоже, код региона здесь: http://en.wikipedia.org/wiki/UN_M.49. Или отсюда: http://site.icu -project.org / design / t / территория-регион-apis

2 голосов
/ 03 февраля 2016

NSLocale получает свои данные от CFLocale, который, в свою очередь, получает свои данные от ICU - Международные компоненты для Unicode (Apple хранит копии здесь ). Файл /icuSources/common/uloc.cpp содержит почти всю информацию, которую мы обычно видим.

Однако, /cldrFiles/supplementalData.xml может быть основным источником. Этот файл поступает из CLDR - хранилища данных Unicode Common Locale .

...