J'ai besoin de créer une chaîne avec un format qui peut convertir les types int, long, double, etc. en chaîne. En utilisant Obj-C, je peux le faire via ci-dessous.
NSString *str = [NSString stringWithFormat:@"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE, STRING_VALUE];
Comment faire de même avec Swift?
NSString
dans leFoundation
cadre . Vous devez doncimport Foundation
faire en sorte que cela fonctionne correctement. Sinon, l'expression appelleraString.init<T>(T)
, et elle produira quelque chose comme"(\"%@%x %x\", 10)"
au lieu de.%@%x
signifient les symboles? Pouvez-vous m'indiquer une ressource où je peux en savoir plus.rien de spécial
la source
Mise à jour: j'ai écrit cette réponse avant que Swift n'ait
String(format:)
ajouté à son API. Utilisez la méthode donnée par la première réponse .la source
String(format:arguments:)
serait plus appropriée pour ajouter une mise en forme-stringWithFormat:
ce qui permet le formatage. Dans Swift,String(format:arguments:)
serait la version Swift d'Obj-C-stringWithFormat:
NSString
méthodes n'étaient pas encore implémentées dans SwiftString
.Non
NSString
requis!ou
la source
Je dirais que les deux
et
sont tous deux acceptables car l'utilisateur a posé des questions sur le formatage et les deux cas correspondent à ce qu'ils demandent:
Évidemment, le premier permet un contrôle plus fin sur le formatage que le second, mais cela ne signifie pas que le second n'est pas une réponse acceptable.
la source
la source
Première lecture documentation officielle du langage Swift.
La réponse devrait être
Ici
1) Toute valeur à virgule flottante par défaut
double
-> Si vous souhaitez afficher une valeur en virgule flottante, vous devez définir explicitement comme un
C'est beaucoup plus clair.
la source
la source
Je sais que beaucoup de temps s'est écoulé depuis cette publication, mais je suis tombé dans une situation similaire et j'ai créé une classe simple pour simplifier ma vie.
Le lien suivant envoie au code source complet: https://gist.github.com/dedeexe/d9a43894081317e7c418b96d1d081b25
Cette solution était basée sur cet article: http://vojtastavik.com/2015/03/29/real-time-formatting-in-uitextfield-swift-basics/
la source
Il existe une solution simple que j'ai apprise avec "We <3 Swift" si vous ne pouvez pas importer Foundation , utilisez round () et / ou ne voulez pas de String :
résultat: 31.726
la source
Utilisez ce code suivant:
la source
Succès pour l'essayer:
la source