NSNumberFormatter仅在ipad设备上不显示卢比符号

时间:2013-01-13 15:40:14

标签: ios nsnumberformatter

我正在使用NSNumberFormatter和NSNumberFormatterCurrencyStyle在我的通用iOS应用程序中以应用程序购买价格显示。我的位置是印度,格式化程序在我测试的大多数设备中正确显示印度卢比符号(ipad模拟器,ipad 3设备,iphone 3gs设备,iphone 4设备)。但是,仅在ipad第一代(运行iOS 5.1.1)上,它显示一个正方形而不是卢比符号。

所有设备都运行他们支持的最新ios(ipad 3上的iOS 6.0.1,iphone 4和iphone 3gs; iPad 1上的iOS 5.1.1)。

我们用于格式化货币的功能是:

@implementation SKProduct (LocalizedPrice)

- (NSString *)localizedPrice
{
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [numberFormatter setLocale:self.priceLocale];
    NSString *formattedString = [numberFormatter stringFromNumber:self.price];
    [numberFormatter release];
    return formattedString;
}

@end

Update1:​​这似乎只发生在iOS 5.1而不是iOS 6.0上 - 我尝试在ios 6和ios 5.1上的ipad模拟器上运行 - 它适用于ios 6模拟器但不适用于ios 5.1。有没有办法在ios 5.1上显示货币符号?

Update2:现在,我检查操作系统版本并仅在> = 6.0中显示符号。这就是其他一些应用程序似乎正在做的事情。

由于 阿南德

2 个答案:

答案 0 :(得分:1)

如果这不适用于特定版本的iOS或设备,则应提交雷达。

Apple Bug Reporter

答案 1 :(得分:0)

你看到了吗?

enter image description here

这就是“通用货币符号”,即格式化程序没有特定的已知符号时使用的符号。

对我来说,iOS 5.1上的NSNumberFormatter没有卢比符号似乎很奇怪,因为这是一个相当标准的符号。但如果情况确实如此(我很抱歉,我没有在这里查看iOS 5.1设备),你可以在格式化字符串中进行查找和替换,用卢比替换通用货币符号符号