我正在使用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中显示符号。这就是其他一些应用程序似乎正在做的事情。
由于 阿南德
答案 0 :(得分:1)
如果这不适用于特定版本的iOS或设备,则应提交雷达。
答案 1 :(得分:0)
你看到了吗?
这就是“通用货币符号”,即格式化程序没有特定的已知符号时使用的符号。
对我来说,iOS 5.1上的NSNumberFormatter
没有卢比符号似乎很奇怪,因为这是一个相当标准的符号。但如果情况确实如此(我很抱歉,我没有在这里查看iOS 5.1设备),你可以在格式化字符串中进行查找和替换,用卢比替换通用货币符号符号