获取iOS当前语言(包括国家/地区代码)

我需要在iOS中收到一个类似en_US或es_ES的字符串.

明显的方法是使用[NSLocale currentLocale]并从中获取语言信息.但是,这可以让您获得“区域格式”,而不是实际的设备语言,这意味着如果您将设备语言设置为英文,但区域格式为“西班牙”,则会错误地报告es_ES.

如果您需要设备语言,您必须这样做:
[[NSLocale preferredLanguages] objectAtIndex:0]

然而,这只会给你语言,所以你得到像en或es这样的东西,没有最后的国家代码.

如何正确地获取国家/地区代码,如Safari?

解决方法

尝试使用此代码
Nsstring *locale = [[NSLocale currentLocale] localeIdentifier];
NSRange startRange = [locale rangeOfString:@"_"];
Nsstring *result = [locale stringByReplacingCharactersInRange:NSMakeRange(0,startRange.length+1) withString:[[NSLocale preferredLanguages] objectAtIndex:0]];
DebugLog(@"current locale: %@",result);

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...