iphonensuserdefaultsregionnslocaleios8.1

NSLocale preferredLanguages objectAtIndex:0 always return "en"


Simulator's language already changed to Japanese, why [[NSLocale preferredLanguages] objectAtIndex:0] always return "en"?

Neither preferred language nor region is related to "en", where does "en" come from?

Here is screenshot

Tried to get [[NSLocale preferredLanguages] objectAtIndex:2], then crash shows *** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFArray objectAtIndex:]: index (2) beyond bounds (1)

Does it means there is no any languages are set in simulator? So weird!

This never happened before upgrading to Xcode 6.1 with iOS8.1/7.1.

Meanwhile, tried same thing on my iPhone 5, console output correct thing.

Why so weird? Does anybody have such problems?

Updates: 1

Oh! What's wrong....


Updates: 2

Why still only one "en" could be found? Where are Japanese and English?

What happened to simulators?

Is there anything I missed?


Solution

  • This is a bug. It was driving me crazy. Apple already knows it.

    See this answers:

    iOS8.1 Simulator always uses US keyboard layout despite german hardware keyboard

    and this:

    iOS 8.1 Simulator Localization broken (NSLocalizedString)

    (In the answer there is a temporary fix changing the schema)

    Best, gigi