【发布时间】:2010-12-13 10:04:08
【问题描述】:
这是我现在如何获取货币符号的代码:
NSLocale *lcl = [[[NSLocale alloc] initWithLocaleIdentifier:@"au_AU"] autorelease];
NSNumberFormatter *fmtr = [[[NSNumberFormatter alloc] init] autorelease];
[fmtr setNumberStyle:NSNumberFormatterCurrencyStyle];
[fmtr setLocale:lcl];
NSLog( @"%@", [lcl displayNameForKey:NSLocaleCurrencySymbol value:@"AUD"] );
NSLog( @"%@", [fmtr currencySymbol] );
两个 NSLog 都返回“AU$”。正如我从 Apple 开发文档中了解到的那样,每种货币至少有两个货币符号(尽管这些符号可能相同)-本地(在一个国家/地区内使用。例如,$ 用于澳大利亚)和国际(AU$澳大利亚)。所以,问题是如何获得本地货币符号。有什么想法吗?
提前致谢。
【问题讨论】:
-
也许这实际上是 iOS 中的一个错误(即本地化团队的疏忽)。您是否尝试过与其他语言环境相同的操作,例如美国?如果您到达那里一次“$”和一次“US$”,那么我会认为这是一个错误并将其提交到 bugreport.apple.com,并在您的代码中添加对该 AU$ 的特殊处理。
-
是的 - 绝对是一个错误。我试过这个并且 en_US 返回 $
-
@Thomas Tempelmann:我刚刚提交了一个错误。谢谢。
标签: iphone objective-c formatting currency