【发布时间】:2015-10-06 17:57:42
【问题描述】:
我们有如下代码来检索用户语言偏好:
NSString *language = [[NSLocale preferredLanguages] firstObject];
在 iOS 8.4 之前,language 是“zh-Hans”、“de”、“ru”、“ja”等。但从 iOS 9 开始,我注意到附加了三个字符“-US” language。例如,“zh-Hans”变成“zh-Hans-US”
我可以找到有关此更改的任何文档。我认为我可以执行以下操作来解决此问题。
NSRange range = [language rangeOfString:@"-US"];
if (range.location!=NSNotFound && language.length==range.location+3) {
// If the last 3 chars are "-US", remove it
language = [language substringToIndex:range.location];
}
但是,我不确定这样做是否安全。似乎“-US”是用户使用该应用程序的位置?但这没有任何意义,因为我们在加拿大。世界其他地方有没有人尝试过这个?
【问题讨论】: