- 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/
我正在尝试使用以下代码获取用户选择的当前首选语言: NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0]; 这是第一
我似乎一直在围绕这个问题兜圈子,但现在却无路可走。 我正在尝试强制我的应用程序的语言(瑞典语),如下所示。 @autoreleasepool { [[NSUserDefaults standa
我想在应用程序中添加两个按钮并执行一些操作。我想在 XIB 中切换两种语言按钮。假设有Button,1是英文,2是法文。我在应用程序中添加了一些数据。如果我选择英语按钮,则数据将以英语显示,而法语按钮
以下代码提供了一个包含所有语言的数组, 我还是希望过滤掉诸如“en-GB”,“zh-Hant”之类的变体,并且每个语言只有一个2个字符的数组。 苹果这样做的优雅方式是什么? NSLog(@"[NSL
我有一根绳子,根据某些情况,中间有不同的部分。 示例:您失去了 255 积分。 点值“255”是变化的部分,我想将不变的部分保存在我的字符串文件中。但是我不想在我的字符串文件中有两个条目,例如。 "s
[NSLocale currentLocale]可能会返回 'en_US@calendar=japanese'} 问题:我可以说 NSLocale 不附加 calendar=japanese到语言环境
我正在尝试使用以下代码获取设备当前选择的语言代码。 NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0]; 此行在安
我希望少数 iTunes 商店使用我的应用程序。我读了NSLocale Class Reference他们正在谈论“当前用户”。那么,谁是“当前用户”?是下载过app的用户吗? 1) 是否有可能根据当
我正在使用闹钟应用程序。我正在使用 NSLocal 通知创建警报。警报工作正常。我的问题是我需要不间断地重复循环 Alatm。 我的代码: UILocalNotification *localNot
我正在使用 Swift 3 开发 iOS。 我得到了国家名称字符串,如“日本”、“英国”、“西类牙”等。 我想知道从国家名称生成 NSLocale 实例的最佳方法是什么? 我只找到了localized
我已经找到了很多方法来解决这个问题,但没有有效的解决方案。这是我尝试过但没有奏效的方法。 (1) 只需调用primaryLanguage() UITextInputMode().primaryLang
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
所以在我的应用程序中,我试图获取设备当前设置的语言及其首字母缩写词。所以我这样做: NSString *fullLanguage = [[NSLocale currentLocale] display
我使用以下代码作为代码和国家/地区名称,但它返回 null。 NSLocale *locale = [NSLocale currentLocale]; NSString *countryCode =
有没有办法像在设置应用程序中一样在 iphone 上获取所有可用语言? 在 NSLocales 类引用中找不到方法。 谢谢! alt text http://dl.getdropbox.com/u/8
我使用此代码获取 iPhone 属于哪个国家/地区: NSLocale *locale = [NSLocale currentLocale]; NSString *countryCode = [loc
我想获取当前选择的 iPhone 语言。如果使用“NSLocale”,它总是返回相同的语言。看来这不是您在 iPhone 设置中选择的。 NSLocale * locale = [NSLocale c
有没有更好的方法来编码而不使用魔术“en”,“es”字符串? let pre = Locale.preferredLanguages[0] if pre == "en" .... el
我试图让 Xcode 返回各种格式的 iOS 语言名称列表。在下面的代码中,我创建了一个字典,返回可以从 NSLocale 返回的各种字符串。 langInUsersLang - 返回用户语言的语言名
我想获得一份国家列表,其中包含相应的语言和货币。 首先我创建了我的类来存储我需要的信息: class Country: NSObject { var localeID:String?
我是一名优秀的程序员,十分优秀!