NSLocale没有返回正确的语言代码

时间:2018-07-16 10:40:32

标签: ios objective-c nslocale

我正在尝试使用以下代码获取设备当前选择的语言代码。

NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];

此行在安装后第一次正常运行。当我从设备设置更改设备语言时,我试图在 NSLocale 返回先前选择的语言时检索设备语言。

帮助解决此问题。

2 个答案:

答案 0 :(得分:1)

您应该使用

let currentDeviceLanguage = Locale.current.languageCode

或Objective-C

NSString *languageCode = [NSLocale currentLocale].languageCode;

答案 1 :(得分:0)

我通过这一行解决了这个问题

NSString *identifier = [[NSLocale autoupdatingCurrentLocale ] localeIdentifier];

迅速:

let identifier = NSLocale.autoupdatingCurrent.localeIdentifier