2011-02-01 48 views
2

我正在使用Cocoa Touch开发iPhone应用程序。可可触摸显示器多种货币

我存储的货币金额表中的相关联的货币代码从ISO 4217货币代码表一起:

例如:123.45英镑,456.45美元,321.98澳元等

当我展示这些值我希望它们使用正确的货币符号进行格式化:£123.45,$ 456.45,$ 321.98。

对于当前区域显示的量,我使用

NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];       
[numFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
[numFormatter setLocale: [NSLocale currentLocale]]; 

我希望能够从货币代码设置了一个区域,以显示正确的货币符号。

有没有什么方法可以设置货币代码的区域?

回答

0

因为它是用户可配置的,所以最好使用当前的语言环境。取而代之的是,刚刚成立的货币代码:

[numFormatter setCurrencyCode: theIOSCurrencyCode]; 
+0

我的应用程序是人们出国旅行,以跟踪他们的费用 - 所以我需要保持目前的区域设置为用户的祖国的。 – arossco 2011-02-03 21:35:36

+0

@arossco是的,当前语言环境是用户在“设置”,“常规” - >“国际”中设置的内容,跨越边界时不会更改。当您以同一地区显示各种货币的价格清单时,价格会根据用户偏好始终格式化。你试过了吗? – Costique 2011-02-04 05:41:34

0

编辑:固定一个错字

如果你真的想改变的区域,那么你可以存储区域设置标识符,而不是货币代码在你的桌子和访问数据如下:

locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
[numFormatter setLocale: locale]; 
[locale release];