2016-06-20 17 views
8

Ich richte ein kleines In-App-Kauf-Shop für mehrere Länder. Wie kann ich herausfinden, dass ich den Preis in Dollar, Euro usw. zeigen muss ... Ich denke, dass es mit der localeIdentifier zu tun haben, aber ich bin mir nicht sicher, wie man damit umgehtErhalten Sie die lokale Währung in swift

Antwort

33

Sie können das Währungssymbol erhalten und Code von (NS)Locale mit

Swift 1 und 2

let locale = NSLocale.currentLocale() 
let currencySymbol = locale.objectForKey(NSLocaleCurrencySymbol)! 
let currencyCode = locale.objectForKey(NSLocaleCurrencyCode)! 

Swift 3

let locale = Locale.current() 
let currencySymbol = locale.object(forKey: .currencySymbol)! 
let currencyCode = locale.object(forKey: .currencyCode)! 

Swift 3,1

let locale = Locale.current 
let currencySymbol = locale.currencySymbol! 
let currencyCode = locale.currencyCode! 

Dies korreliert mit den Benutzerbereich Formateinstellungen und arbeitet in beiden iOS und macOS

+0

Mit Xcode beta 4 (Swift 3) I bekomme den Fehler: Wert vom Typ 'Locale' hat kein Mitglied 'Objekt' – blwinters

+0

@blwinters Ich denke, die schnelle 3 entspricht ist Locale.current.regionCode – bolnad

+0

@blwinters Die Syntax kann sich während der Beta-Phase ständig ändern. Bitte lesen Sie die Dokumentation von 'Locale' in der entsprechenden Xcode-Version. – vadian

2

für swift3

//User region setting return 
let locale = Locale.current //NSLocale.current 

//Returns true if the locale uses the metric system (Note: Only three countries do not use the metric system: the US, Liberia and Myanmar.) 
let isMetric = locale.usesMetricSystem 

//Returns the currency code of the locale. For example, for “zh-Hant-HK”, returns “HKD”. 
let currencyCode = locale.currencyCode 

//Returns the currency symbol of the locale. For example, for “zh-Hant-HK”, returns “HK$”. 
let currencySymbol = locale.currencySymbol 
Verwandte Themen