получить NSNumberFormatter, чтобы указать валюту при форматировании цены - PullRequest
1 голос
/ 14 августа 2011

Я реализую покупки в приложении прямо сейчас. Чтобы получить локализованную цену, я делаю следующее:

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;

Это отлично работает. Однако я хотел бы получить строку, которая может быть преобразована в строку ASCII. Так есть ли способ, чтобы средство форматирования чисел изложило валюту. например «0,99 €» станет «0,99 евро» или «0,99 евро».

1 Ответ

0 голосов
/ 14 августа 2011

Есть способ сделать это, заменив ¤ в формате форматера:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setLocale:self.priceLocale];
NSString *currencyString = [numberFormatter internationalCurrencySymbol];
NSString *posFormat = [numberFormatter positiveFormat];
formatterFormat = [formatterFormat stringByReplacingOccurrencesOfString:@"¤" withString:currencyString];
[numberFormatter setPositiveFormat:posFormat];
NSString *formattedString = [numberFormatter stringFromNumber:self.price];
[numberFormatter release];
return formattedString;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...