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
8
A
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
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
Mit Xcode beta 4 (Swift 3) I bekomme den Fehler: Wert vom Typ 'Locale' hat kein Mitglied 'Objekt' – blwinters
@blwinters Ich denke, die schnelle 3 entspricht ist Locale.current.regionCode – bolnad
@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