NSString中的数字值显示在错误的语言环境中
我从JSON解析NSString,然后将值显示在UILable中,该值包含数字,如@“12”,@“13”
现在当我这样做时:
self.lable.text = @"12";
标签显示阿拉伯数字的值(12)
我试图解析JSON响应为NSNumber,然后使用NSNumberFormatter强制在下面的代码段中的“en_US”语言环境,但它不起作用。
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:0];
[numberFormatter setMinimumFractionDigits:0];
NSString *formattedNumberString = [numberFormatter stringFromNumber:number];
self.lable.text = formattedNumberString;
我的应用程序语言是“英语 - 开发语言”,在项目部分的信息选项卡下列出。
我正在运行应用程序的设备的区域设置为“美国”,并且该语言设置为“英语”
我试图运行[NSLocale currentLocale]来仔细检查,但我得到了“en_US”
我坚持这个问题,任何指针和帮助表示赞赏。
这很奇怪。 我不会强制本地,而是将其设置为设备的本地设置,并且可以如下设置字符串格式:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.locale = [NSLocale currentLocale];
numberFormatter.numberStyle = NSNumberFormatterDecimalStyle;
numberFormatter.maximumFractionDigits = 0;
self.label.text = [NSString StringWithFormat:@"%@", [numberFormatter stringForObjectValue:number]];
另一个建议是始终使用localizedStringFromNumber
来确保字符串的正确本地行为:
NSString *formattedNumberString = [numberFormatter localizedStringFromNumber:number];
我希望它有帮助。
链接地址: http://www.djcxy.com/p/67361.html上一篇: numeric values within NSString are displayed in a wrong locale