NSNumberFormatterCurrencyStyle で NSNumberFormatter を使用して、ユニバーサル iOS アプリでアプリの購入価格を表示しています。私の場所はインドで、フォーマッターはテストしたほとんどのデバイス (iPad シミュレーター、iPad 3 デバイス、iPhone 3gs デバイス、iPhone 4 デバイス) でインドルピー記号を正しく表示します。ただし、ipad の第 1 世代 (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: 今のところ、OS のバージョンを確認し、6.0 以上でのみシンボルを表示します。これは、他のいくつかのアプリが行っているように見えることです。
ありがとうアナンド