本地化:在模拟器中更改语言时应用程序崩溃

str*_*ave 11 iphone localization objective-c ipad ios-simulator

为了本地化我的应用程序,我为三种语言创建了Localizable.strings.我不需要本地化任何nib文件,因为我在我的项目中没有使用任何文件.没有图像本地化,只有字符串.在代码中,我使用NSLocalizedStrings(@"key",@"comment")读取字符串.Localized.strings文件使用UTF-16格式.字符串看起来像这样:"Projects"="Projekte";.

当我在模拟器中运行应用程序并更改语言时,我在后面运行的应用程序崩溃(SIGKILL).如果我重新运行该应用程序,我可以看到该语言已被更改,因为"编辑"按钮的标签是德语,但我的所有字符串仍然是英语.

我读了很多关于本地化的帖子,我家里有三本iOS书,但我还是不知道我做错了什么.

我忘了设置别的东西吗?有任何想法吗?

aka*_*kyy 17

这是因为当您更改设备的语言时,会SpringBoard杀死所有应用程序,以便在下次启动时"加载"新语言.如果没有您的应用程序被杀,您将无法更改系统语言.如果您想保存新语言,必须将其杀死.

您的应用不会崩溃.它正在被iOS杀死(SIGKILL).