代码改变世界

iOS语言与地区的判断

2017-09-18 13:36  dengchaojie_learner  阅读(2290)  评论(0编辑  收藏  举报

NSLocale *local = [NSLocale currentLocale];
if (![local.currencyCode isEqualToString:@"CNY"]) {}// 地区货币代码。注意,currencyCode只能在iOS 10及以上的版本可以使用,所以低于这个版本的系统上,会crash。

 

可以用下面的判断:

  // 当前所在地信息,包括语言与地区

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

   NSString *displayName = [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:identifier];

   if (![displayName isEqualToString:@"中文(中国)"]) {}// 只有地区是中国,语言是简体中文,displayName才是@"中文(中国)"

 

  // 当前所在地的使用语言

    NSLocale *currentLocale = [NSLocale currentLocale];

    NSLog(@"Language Code is %@", [currentLocale objectForKey:NSLocaleLanguageCode]);

    // 系统语言

    NSArray *arLanguages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];

    NSString *strLang = [arLanguages objectAtIndex:0];

语言是简体中文:

2017-09-18 10:50:23.517 CeShi[2343:854583] 中文(中国)
2017-09-18 10:50:23.521 CeShi[2343:854583] LanguageCode is zh
2017-09-18 10:50:23.521 CeShi[2343:854583] AppleLanguages:zh-Hans-CN

语言是English:

2017-09-18 11:08:51.587 CeShi[2396:860809] English (China)
2017-09-18 11:08:51.589 CeShi[2396:860809] LanguageCode is en
2017-09-18 11:08:51.589 CeShi[2396:860809] AppleLanguages:en-CN

 

// 输入框,对金额格式化

    _invalidInputCharacterSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];//NSCharacterSet

    _currencyNumberFormatter = [[NSNumberFormatter alloc] init];//NSNumberFormatter

    _currencyNumberFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];// 不管手机的地区和语言是什么,直接初始化成 中国和简体中文;

    _currencyNumberFormatter.numberStyle = kCFNumberFormatterCurrencyStyle;

    _currencyNumberFormatter.usesGroupingSeparator = YES;