localizedStringWithFormat以法语显示NSNumber对象的空间

时间:2016-11-22 04:39:42

标签: ios objective-c localization

我在项目中支持的语言很少,包括法语。

self.lblMax.text=[NSString localizedStringWithFormat:@"%@%@",[NSNumber numberWithFloat:[self.arrValues.lastObject floatValue]],self.strUnit];

在上面的代码行中, arrValues 包含[NSNumber numberWithFloat:val]个对象的列表。我将lastObject作为最大数字,并通过localizedStringWithFormat的{​​{1}}方法追加其单位。

假设,arrValues数组的最后一个对象是24000所以我得到的值是“24 000ms”(带空格)而不是正常的“24000ms”

因为我已经设置了法语和法国地区。

有时它在UILabel中显示逗号“24,000ms”,但实际值仅为24000。我使用NSString方法删除逗号。

请帮助并纠正我如果我为法语本地化做错了什么。

提前致谢,

1 个答案:

答案 0 :(得分:0)

在某些区域设置(包括法国)中,将号码24000显示为24 000是完全正常的。某些区域设置将其显示为24,000。有人将其显示为24.000。有些人可能会以其他方式表明。你所看到的一切都没有错。

您可以考虑使用NSNumberFormatter格式化数字。

如果您的应用仅支持iOS 10及更高版本,则应考虑使用NSMeasurementNSMeasurementFormatter而不是创建自己的格式字符串,以确保您的数量和单位真正显示给定的区域设置。