NSLocale preferredLanguages ​​objectAtIndex: 0 всегда возвращает "en"

Язык симулятора уже изменен на японский, почему [[NSLocale preferredLanguages] objectAtIndex:0] всегда return "en"?

Ни предпочтительный язык, ни регион не связаны с "en", откуда "en" исходит?

Here is screenshot

Пытался получить [[NSLocale preferredLanguages] objectAtIndex: 2 ], затем сбой показывает *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFArray objectAtIndex:]: index (2) beyond bounds (1)

Означает ли это, что в симуляторе нет каких-либо языков? Так странно!

Этого не произошло до обновления до Xcode 6.1 с помощью iOS8.1/7.1.

Между тем, пробовал то же самое на моем iPhone 5, консоль выводила правильную вещь.

Почему так странно? У кого-нибудь есть такие проблемы?

Обновления: 1

  • Удалите Xcode, а также симуляторы и переустановите его, загрузив из Mac Store.
  • Создайте новый простой проект, измените язык симулятора
  • По-прежнему всегда "en".

О! Что не так....


Обновления: 2

  • Сегодня переустановили новый Yosemite, переформатировав HD
  • Загрузить Xcode 6.1
  • Запустите новый простой проект по умолчанию
  • Поместите эти коды
  • Изменить/Добавить язык симулятора, японский, голландский, английский,
  • Run
  • О, Боже! Получено только "en", японский и английский не найдены!

Почему еще один "en" может быть найден? Где японский и английский?

Что случилось с симуляторами?

Есть ли что-то, что я пропустил?

Ответ 1

Это ошибка. Это сводило меня с ума. Apple уже это знает.

См. ответы:

iOS8.1 Симулятор всегда использует раскладку клавиатуры США, несмотря на немецкую аппаратную клавиатуру

и это:

iOS 8.1 Симулятор Локализация сломана (NSLocalizedString)

(В ответе есть временное исправление, изменяющее схему)

Бест, Gigi

Ответ 2

Мой симулятор iOS неожиданно начал сообщать "en", а не "en-US", поэтому кажется, что эта проблема все еще активна.

Xcode 8.2.1, iOS 10

Я пошел на языковые настройки, и были выбраны английский и США. Я выбрал Канаду и Францию ​​и получил "fr-CA". Затем я переключил его и снова начал получать "en-US". С тех пор я не смог воспроизвести проблему "en".

Итак, мы не можем передать значения [NSLocale preferredLanguages] при условии, что они будут пары Language-Region.