美文网首页
iOS NSLocale类解释

iOS NSLocale类解释

作者: 飞龙之城 | 来源:发表于2022-01-21 14:39 被阅读0次

NSLoale类返回本地化信息,主要体现在"语言"和"区域格式"这两个设置项。有下面几种初始化方法:

1. + (id)systemLocale

返回系统初始本地化信息

NSLocale *locale = [NSLocale systemLocale];

NSLog(@"%@",[[locale objectForKey:NSLocaleCalendar] calendarIdentifier]);

2. + (id)currentLocale / + (id)autoupdatingCurrentLocale

这两个类方法都将返回当前客户端的本地化信息,区别在于:currentLocale取得的值会一直保持在cache中,第一次用此方法实例化对象后,即使修改了本地化设定,这个对象也不会改变。而使用autoupdatingCurrentLocale,当每次修改本地化设定,其实例化的对象也会随之改变。

下面的代码演示了区别所在,假设初始本地化信息为en_US,先用这两个函数分别初始化两个对象,然后修改本地化设定语言为台湾繁体中文,再重新打印这两个对象的信息:

NSLocale *locale1;

NSLocale *locale2;

- (IBAction)doTest:(id)sender 

{

    locale1 = [NSLocale currentLocale];

    locale2 = [NSLocale autoupdatingCurrentLocale];

    NSLog(@"%@",locale1.localeIdentifier);//print "en_US"

    NSLog(@"%@",locale2.localeIdentifier);//print "en_US"

}

- (IBAction)doAgain:(id)sender 

{

    NSLog(@"%@",locale1.localeIdentifier);//print "en_US"

    NSLog(@"%@",locale2.localeIdentifier);//print "zh_TW"

}

3. - (id)initWithLocaleIdentifier:(NSString *)string

用标示符初始化本地化信息

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];

NSString *strSymbol = [locale objectForKey:NSLocaleCurrencySymbol];

NSLog(@"%@",strSymbol);

代码用"zh_CN"来初始化对象,然后再打印出对象的货币符号,得到的结果是人民币符号¥

NSLoale常用对象方法与类方法:

1. - (id)objectForKey:(id)key

根据不同的key返回各种本地化信息,例如下面的代码返回了当前货币符号:

NSLocale *locale = [NSLocale currentLocale];

NSString *strSymbol = [locale objectForKey:NSLocaleCurrencySymbol];

NSCalendar *calendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];

2. - (NSString *)displayNameForKey:(id)key value:(id)value

显示特定地区代号下相应键的显示名称:

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];

NSString *str = [locale displayNameForKey:NSLocaleIdentifier value:@"en_US"];

NSLog(@"%@",str);

第一句代码代表以中文来实例化对象,然后得到"en_US"的NSLocaleIdentifier键的显示名称。最后输出的结果是"英文(美国)"

相关文章

  • iOS NSLocale类解释

    NSLoale类返回本地化信息,主要体现在"语言"和"区域格式"这两个设置项。有下面几种初始化方法: 1. + (...

  • iOS NSLocale

    1: 父类 2: 属性 3:方法 4: 分类(NSLocaleCreation)

  • iOS NSLocale

    1.NSLocale 若你只开发中国区的应用,需要保证用户修改当前语言环境时应用的显示不发生变化。而像NSDate...

  • NSLocale类使用

    之前文章讲过NSData的格式化(NSDate 格式化),今天来说一下实际代码使用中遇到的问题。 最近在工作中,需...

  • NSLocale

    NSLocale类包括国家,语言,货币等信息 初始化: init(localeIdentifier: String...

  • 详解NSLocale.preferredLanguages的含义

    NSLocale.preferredLanguages的应用 在我们开发iOS程序时,经常有“使用当前应用设置的语...

  • iOS语音识别

    //创建本地化NSLocale *local =[[NSLocale alloc] initWithLocaleI...

  • iOS NSTimeZone类解释

    NSTimeZone表示时区信息。 有下面几种初始化方法: 1. + (id)timeZoneWithName:(...

  • IOS开发中的时间与日期(上)

    主要有以下几个类: NSDate:表示一个具体的绝对的时间点。NSTimeZone:表示时区信息。NSLocale...

  • NSLocale

    国家编码语言编码货币符号货币编码 =============currentLocale==============...

网友评论

      本文标题:iOS NSLocale类解释

      本文链接:https://www.haomeiwen.com/subject/cipjhrtx.html