我可以从NSLocale获取本地货币的代码吗?我试过这个:
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"] autorelease];
NSString *currencyCode = [locale objectForKey:NSLocaleCurrencyCode];
但是currencyCode回复为nil(我想要“EUR”,或类似的)。
答案 0 :(得分:19)
您的代码在常规Macintosh应用程序中对我来说非常好。
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"] autorelease];
NSString *currencyCode = [locale objectForKey:NSLocaleCurrencyCode];
NSLog( @"currencyCode is %@", currencyCode );
在控制台中显示:
2011-11-14 14:53:33.784 Testing[26388:707] currencyCode is EUR
您是否正在尝试将其构建为命令行(Foundation)应用程序或非传统类似Mac的应用程序?
答案 1 :(得分:0)
android:layout_width="-1"
有一个名为- objectForKey:
的方法,它返回与指定对应的对象
NSLocale
组件键作为参数传递。使用Swift 2.2,NSLocale
具有以下声明:
- objectForKey:
在众多NSLocale
component keys中,Apple声明func objectForKey(_ key: AnyObject) -> AnyObject?
:
与区域设置关联的货币代码的键。对应的值是
NSLocaleCurrencyCode
对象;例如,“USD”。
因此,您可以使用以下Swift 2.2和Swift 3代码段检索链接到NSString
实例的货币代码:
Swift 2.2
NSLocale
Swift 3
import Foundation
let locale = NSLocale(localeIdentifier: "fr_FR")
//let locale = NSLocale.currentLocale()
let localeCurrencyCode = locale.objectForKey(NSLocaleCurrencyCode) as! String
print(localeCurrencyCode) // prints "EUR"