Ich erstelle eine Budget-App, mit der der Benutzer sowohl sein Budget als auch Transaktionen eingeben kann. Ich muss dem Benutzer erlauben, sowohl Pence als auch Pfund aus separaten Textfeldern einzugeben, und sie müssen zusammen mit Währungssymbolen formatiert werden. Ich habe dies im Moment gut funktionieren, möchte es aber lokalisieren, da es derzeit nur mit GBP funktioniert. Ich habe mich bemüht, NSNumberFormatter-Beispiele von Ziel C bis Swift zu verbergen.
Mein erstes Problem ist die Tatsache, dass ich die Platzhalter für die Eingabefelder so festlegen muss, dass sie spezifisch für den Standort des Benutzers sind. Z.B. Pfund und Pence, Dollar und Cent etc ...
Das zweite Problem besteht darin, dass die in jedes der Textfelder wie 10216 und 32 eingegebenen Werte formatiert und das für den Standort des Benutzers spezifische Währungssymbol hinzugefügt werden muss. Es würde also 10.216,32 £ oder 10.216,32 $ usw. werden.
Außerdem muss ich das Ergebnis der formatierten Zahl in einer Berechnung verwenden. Wie kann ich dies tun, ohne auf Probleme zu stoßen, ohne auf Probleme mit dem Währungssymbol zu stoßen?
Jede Hilfe wäre sehr dankbar.
quelle
Antworten:
Hier ist ein Beispiel für die Verwendung in Swift 3. ( Bearbeiten : Funktioniert auch in Swift 4)
Hier ist das alte Beispiel für die Verwendung in Swift 2.
quelle
string(for: price)
anstelle vonstring(from: price)
Swift 3:
Wenn Sie nach einer Lösung suchen, die Ihnen Folgendes bietet:
Bitte verwenden Sie Folgendes:
quelle
func string(for obj: Any?) -> String?
stattdessen die Formatierungsmethode verwendenstring(from:)
Ich habe die von @ NiñoScript bereitgestellte Lösung auch als Erweiterung implementiert:
Erweiterung
Verwendung:
Swift 3
quelle
Xcode 11 • Swift 5.1
quelle
Einzelheiten
Lösung
Verwendung
Ergebnisse
quelle
Aktualisiert für Swift 4 aus der Antwort von @Michael Voccola:
Hinweis: Keine Force-Unwraps, Force-Unwraps sind böse.
quelle
Swift 4 TextField implementiert
quelle
Dies funktioniert für Swift 3.1 Xcode 8.2.1
quelle
Swift 4
Wenn Sie das Gebietsschema ändern möchten, können Sie dies folgendermaßen tun
// Dies ist das Gebietsschema für das Gebietsschema Indonesien. Wenn Sie die Verwendung gemäß dem Mobilfunkbereich verwenden möchten, verwenden Sie diese gemäß der oben genannten Erwähnung Locale.current
quelle
füge diese Funktion hinzu
mit:
quelle