【发布时间】:2014-12-21 17:16:34
【问题描述】:
模拟器的语言已经改成日语了,为什么[[NSLocale preferredLanguages] objectAtIndex:0]总是返回"en"?
首选语言和地区都与“en”无关,"en" 来自哪里?
尝试获取[[NSLocale preferredLanguages] objectAtIndex:2],然后crash显示*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFArray objectAtIndex:]: index (2) beyond bounds (1)
这是否意味着模拟器中没有设置任何语言?好诡异!
这在升级到带有 iOS8.1/7.1 的 Xcode 6.1 之前从未发生过。
同时,在我的 iPhone 5 上尝试了同样的操作,控制台输出正确。
为什么这么奇怪?有人有这样的问题吗?
更新:1
- 删除 Xcode 和模拟器,然后从 Mac Store 下载重新安装。
- 新建一个简单的项目,更改模拟器的语言
- 仍然总是“en”。
哦!怎么了……
更新:2
- 今天,通过重新格式化 HD 重新安装了全新的 Yosemite
- 下载 Xcode 6.1
- 开始一个新的简单默认项目
- 输入这些代码
- 更改/添加模拟器语言,日语,荷兰语,英语,
- 运行
- 哦,天哪!又只有
"en",日文英文都找不到!
为什么还是只能找到一个"en"?日语和英语在哪里?
模拟器怎么了?
有什么我错过的吗?
【问题讨论】:
-
尝试为 OS X 设置您的首选语言(不在模拟器的设置中?)
-
OS X 的首选语言会影响 iPhone 模拟器的语言吗?我不这么认为。无论如何,尝试过但没有用。
-
@Shoaib 你使用的是什么版本的 Xcode?span>
-
@Shoaib 6.0.1 还是 6.1?
-
6.0.1 版,但我认为版本对此无关紧要。
标签: iphone nsuserdefaults region nslocale ios8.1