【发布时间】:2013-01-13 15:40:14
【问题描述】:
我正在使用 NSNumberFormatter 和 NSNumberFormatterCurrencyStyle 在我的通用 iOS 应用中显示应用购买价格。我的位置是印度,格式化程序在我测试的大多数设备(ipad 模拟器、ipad 3 设备、iphone 3gs 设备、iphone 4 设备)中正确显示了印度卢比符号。但是,仅在 ipad 第一代(运行 iOS 5.1.1)上,它显示一个正方形而不是卢比符号。
所有设备都运行它们支持的最新 ios(ipad 3、iphone 4 和 iphone 3gs 上的 iOS 6.0.1;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 中显示符号。这就是其他一些应用似乎正在做的事情。
谢谢 阿南德
【问题讨论】:
-
嗯,我不认为原装 iPad 可以运行 iOS 6...
-
感谢@DaveDeLong - ipad 1 有 5.1.1。我已经在上面更新了。
-
谢谢,@H2CO3。我在上面添加了相关代码。
标签: ios nsnumberformatter