热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

NSLocale在iOS11中返回错误的值

如何解决《NSLocale在iOS11中返回错误的值》经验,为你挑选了1个好方法。

从iOS 11.0开始,以下代码返回"de_US"而不是"en_US":

// => Returns "de_US"
NSString *regiOnCode= [[NSLocale currentLocale] objectForKey:NSLocaleIdentifier];
NSLog(@"Region code: %@", regionCode);

在iOS 11下面,它返回"en_US".

我的设备有语言和地区英语/美国.首选语言(尽管我不在我的代码中使用它们)是有序的:

    英语

    德语

    法国

这是iOS 11的已知问题吗?API有变化吗?



1> hico..:

找到了!

这是从iOS 11开始的变化行为.

在iOS 11下,[NSLocale currentLocale]仅返回应用程序本地化支持的语言.如果您的应用仅支持英语(作为基本本地化),则无论用户在设备上选择何种语言,currentLocale将始终返回英语.

在iOS 10及更早版本中,currentLocale将直接表示用户选择的语言和区域,无论您的应用支持哪些本地化.

更多信息:

https://jaanus.com/ios-11-changes-localized-date-handling/

Maddy的堆栈溢出答案:https://stackoverflow.com/a/46206511/1226963


推荐阅读
author-avatar
丿氵小柒柒2502894463
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有