Ich muss eine Zeichenfolge mit Format erstellen, die int-, long-, double- usw. Typen in Zeichenfolgen konvertieren kann. Mit Obj-C kann ich es über den folgenden Weg tun.
NSString *str = [NSString stringWithFormat:@"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE, STRING_VALUE];
Wie mache ich das mit Swift?
NSString
imFoundation
Rahmen . Sie müssenimport Foundation
dies also sicherstellen, damit es richtig funktioniert. Andernfalls wird der Ausdruck aufgerufenString.init<T>(T)
und erzeugt so etwas wie"(\"%@%x %x\", 10)"
anstelle von.%@%x
Symbole? Können Sie mich auf eine Ressource verweisen, in der ich mehr darüber erfahren kann?nichts Besonderes
quelle
Update: Ich habe diese Antwort geschrieben, bevor Swift
String(format:)
die API hinzugefügt hat. Verwenden Sie die in der oberen Antwort angegebene Methode .quelle
String(format:arguments:)
wäre besser geeignet, um Formatierungen hinzuzufügen-stringWithFormat:
was Formatierung ermöglicht. In SwiftString(format:arguments:)
wäre die Swift-Version von Obj-C's-stringWithFormat:
NSString
Methoden in Swift noch nicht implementiert warenString
.Nicht
NSString
erforderlich!oder
quelle
Ich würde das beides argumentieren
und
sind beide akzeptabel, da der Benutzer nach der Formatierung gefragt hat und beide Fälle zu den Anforderungen passen:
Ersteres ermöglicht natürlich eine feinere Kontrolle über die Formatierung als Letzteres, aber das bedeutet nicht, dass Letzteres keine akzeptable Antwort ist.
quelle
quelle
Lesen Sie zuerst die offizielle Dokumentation für die Swift-Sprache.
Antwort sollte sein
Hier
1) Standardmäßig ein beliebiger Gleitkommawert
double
-> Wenn Sie einen Gleitkommawert anzeigen möchten, müssen Sie diesen explizit wie a definieren
Das ist viel klarer.
quelle
quelle
Ich weiß, dass seit dieser Veröffentlichung viel Zeit vergangen ist, aber ich bin in eine ähnliche Situation geraten und habe eine einfache Klasse erstellt, um mein Leben zu vereinfachen.
Der folgende Link wird an den vollständigen Quellcode gesendet: https://gist.github.com/dedeexe/d9a43894081317e7c418b96d1d081b25
Diese Lösung basierte auf diesem Artikel: http://vojtastavik.com/2015/03/29/real-time-formatting-in-uitextfield-swift-basics/
quelle
Es gibt eine einfache Lösung, die ich mit "We <3 Swift" gelernt habe, wenn Sie Foundation nicht importieren können , round () verwenden und / oder keinen String möchten :
Ergebnis: 31.726
quelle
Verwenden Sie diesen folgenden Code:
quelle
Erfolg, es zu versuchen:
quelle