NSNumberFormatter の currencySymbol の取得に問題があります。
通貨コード「EUR」の NSNumberFormatter を使用しています。
価格をフォーマットすると、記号は正しく、€ 記号が表示されます。
しかし、メソッド [formatter currencySymbol] で currencySymbol だけを取得したい場合は、記号 $ が返されます。
currencySymbol を手動で設定すると (たとえば "A" を使用)、すべて正常に動作し、[formatter currencySymbol] メソッドは "A" 記号を返します。
これが私のコードです
// Create formatter
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setCurrencyCode:@"EUR"];
[formatter setLocale:[NSLocale currentLocale]];
// Log the currency symbol
NSLog(@"[formatter currencyCode] : %@", [formatter currencyCode]);
NSLog(@"[formatter currencySymbol] : %@", [formatter currencySymbol]);
NSLog(@"[formatter currencySymbol] : %@", [formatter stringFromNumber:[NSNumber numberWithInt:0]]);
[formatter setCurrencySymbol:@"A"];
NSLog(@"[formatter currencySymbol] : %@", [formatter currencySymbol]);
NSLog(@"[formatter currencySymbol] : %@", [formatter stringFromNumber:[NSNumber numberWithInt:0]]);
コンソールの結果は次のとおりです。
2012-01-17 12:29:11.108[4545:207] [formatter currencySymbol] : $
2012-01-17 12:29:11.109[4545:207] [formatter currencySymbol] : €0.00
2012-01-17 12:29:11.110[4545:207] [formatter currencySymbol] : A
2012-01-17 12:29:11.111[4545:207] [formatter currencySymbol] : A0.00
currencySymbol は変更される可能性があるため、強制することはできません。
与えられた currencyCode に対応する正しい currencySymbol を取得する方法はありますか?
ありがとう