我可以從NSLocale獲取本地貨幣的代碼嗎?我試過這個:我可以從NSLocale獲取本地貨幣的代碼嗎?
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"] autorelease];
NSString *currencyCode = [locale objectForKey:NSLocaleCurrencyCode];
但currencyCode返回爲零(我想要「EUR」,或類似的)。
我可以從NSLocale獲取本地貨幣的代碼嗎?我試過這個:我可以從NSLocale獲取本地貨幣的代碼嗎?
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"] autorelease];
NSString *currencyCode = [locale objectForKey:NSLocaleCurrencyCode];
但currencyCode返回爲零(我想要「EUR」,或類似的)。
在普通的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
你們是不是要建立這個作爲一個命令行(基金會)的應用程序或一些非傳統的Mac樣?
NSLocale
有一個稱爲- objectForKey:
方法,返回對應於作爲一個參數傳遞的特定 NSLocale
部件鍵的對象。隨着雨燕2.2,- objectForKey:
有如下聲明:
func objectForKey(_ key: AnyObject) -> AnyObject?
在衆多NSLocale
component keys,蘋果指出約NSLocaleCurrencyCode
:
與該區域相關聯的貨幣代碼的關鍵。相應的值是一個
NSString
對象;例如「USD」。
因此,你可以檢索鏈接到NSLocale
實例有以下雨燕2.2和斯威夫特3代碼段的幣種代碼:
雨燕2.2
import Foundation
let locale = NSLocale(localeIdentifier: "fr_FR")
//let locale = NSLocale.currentLocale()
let localeCurrencyCode = locale.objectForKey(NSLocaleCurrencyCode) as! String
print(localeCurrencyCode) // prints "EUR"
斯威夫特3
import Foundation
let locale = Locale(localeIdentifier: "fr_FR")
//let locale = Locale.current
let localeCurrencyCode = locale.object(forKey: Locale.Key.currencyCode) as! String
print(localeCurrencyCode) // prints "EUR"
這個工作適合我。這不是內存問題? – Rodrigo