NSNumberFormatter stringFromNumber:不返回货币符号

时间:2014-07-11 17:26:50

标签: ios objective-c currency nsnumberformatter

我在自定义UITableViewCell子类上有以下方法:

- (void)setPrice:(NSNumber *)price {
  _price = price;
  NSNumberFormatter *formatter = [NSNumberFormatter new];
  formatter.formatterBehavior = NSNumberFormatterCurrencyStyle;
  formatter.currencyCode = @"USD";
  formatter.locale = [NSLocale currentLocale];
  priceLabel.text = [formatter stringFromNumber:_price];
}

priceLabel最终显示_price而没有货币符号($)。据我所知,这不应该发生。有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

改变这个:

formatter.formatterBehavior = NSNumberFormatterCurrencyStyle;

为:

[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];

答案 1 :(得分:2)

查看常量NSNumberFormatterCurrencyStyle? Objective-C没有对枚举进行类型检查,但您可以从名称中看到它与NSNumberFormatterStyle有关。

formatterBehavior需要NSNumberFormatterBehavior,类似于NSNumberFormatterBehaviorDefault

您想要设置numberStyle

formatter.numberStyle = NSNumberFormatterCurrencyStyle;