- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
将我的 Mac 更新到 OSX Sierra 后,我注意到 NSLocale.preferredLanguages()
数组现在采用不同的格式(参见快速解释 here)
另外,我想 IOS9 也会发生同样的事情。
所以,简而言之,以前我们有语言格式“en”、“fr”、“ru”、e.t.c
现在,我们有“en-US”、“en-RU”、“fr-US”等格式
在我的应用程序中,一些控件的坐标与语言环境有关。现在,因为格式不同,都错了。我正在考虑解决此问题并继续支持旧版本的最佳方法。
所以,我的问题是:
有没有办法只接收没有区域代码的语言代码?快速而肮脏的解决方案是从该字符串中读取前两个符号。还有更优雅的吗?
附言有人可以向我解释苹果的逻辑吗?我的意思是,为什么他们决定,最好的选择是更改现有的对象格式(破坏向后兼容性)而不是向 NSLocale 添加额外的字段?
最佳答案
您可以按如下方式使用 substringToIndex
:
let str = "en-US"
if let indexOfDash = str.characters.indexOf("-") {
let langCode = str.substringToIndex(indexOfDash)
}
无论出于何种原因,如果语言代码超过 2 个字符,您就不会被抓到。
关于ios - 从 NSLocale.preferredLanguages 数组中删除区域代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39895027/
[NSLocale preferredLanguages] 返回一个语言代码数组作为字符串。索引 0 处的对象返回设备的当前语言设置,但列表的其余部分(如果长度超过 1)是如何确定的? 最佳答案 想通
[NSLocale preferredLanguages] 是否有可能为空? 我得到的首选语言如下: NSString* preLang = [[NSLocale preferredLanguages
我正在尝试解决与语言相关的 Office 365 问题。在支持文章中,https://community.office365.com/en-us/f/148/t/205002 ,表示在使用目录同步填充
我正在尝试解决与语言相关的 Office 365 问题。在支持文章中,https://community.office365.com/en-us/f/148/t/205002 ,表示在使用目录同步填充
当我有多种语言时,调用 Locale.preferredLanguages 有时会首先返回 en,请参见下图。 您可以在左侧看到我的订单是西类牙语,然后是英语,但数组 Locale.preferred
我正在开发一个 iOS 应用程序,它需要告诉服务器它与 iPhone/iPad 上使用的当前语言进行通信。我目前正在使用: [[NSLocale preferredLanguages] objectA
我正在尝试使用以下代码获取用户选择的当前首选语言: NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0]; 这是第一
将我的 Mac 更新到 OSX Sierra 后,我注意到 NSLocale.preferredLanguages() 数组现在采用不同的格式(参见快速解释 here) 另外,我想 IOS9 也会发生
我已经研究了好几天了。 我有一个快速就绪的应用程序,最近我们决定引入本地化,当我将系统语言设置为所需的语言时,它可以工作,但是当我尝试手动更改语言时它不起作用。 我尝试过的: NSUserDe
我正在尝试使用以下代码在我的设备(不在模拟器中)中获取正确的语言: NSString * languageLocale = [[NSLocale preferredLanguages] object
根据文档定义[NSLocale preferredLanguages]: The user's language preference order as an array of NSString ob
我正在测试我的应用程序创建的请求,特别是“Accept-Language”及其值“en-US;q=1.0”通过 request?.allHTTPHeaderFields?["Accept-Langua
模拟器的语言已经更改为日语,为什么[[NSLocale PreferredLanguages] objectAtIndex:0] 总是返回“en”? 首选语言和地区都与“en”无关,“en” 来自哪里
我们有如下代码来检索用户语言偏好: NSString *language = [[NSLocale preferredLanguages] firstObject]; 在 iOS 8.4 之前,lan
[NSLocale PreferredLanguages] 和 [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages
昨天 Xcode 更新到 v6.1。 现在,[NSLocale preferredLanguages] 在 iPhone 中返回一个空数组,但仅适用于 IOS 8 - 在 iPhone 5 和 6 模
我是一名优秀的程序员,十分优秀!