Muszę utworzyć ciąg znaków w formacie, który może konwertować typy int, long, double itp. Na string. Za pomocą Obj-C mogę to zrobić poniżej.
NSString *str = [NSString stringWithFormat:@"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE, STRING_VALUE];
Jak zrobić to samo z szybkim?
NSString
wFoundation
ramach . Musisz więcimport Foundation
sprawić, by działało poprawnie. W przeciwnym razie wyrażenie zadzwoniString.init<T>(T)
i wytworzy coś podobnego"(\"%@%x %x\", 10)"
zamiast.%@%x
oznaczają symbole? Czy możesz wskazać mi zasób, w którym mogę dowiedzieć się więcej na ten temat?nic specjalnego
źródło
Aktualizacja: Napisałem tę odpowiedź, zanim Swift
String(format:)
dodał do swojego API. Użyj metody podanej w górnej odpowiedzi .źródło
String(format:arguments:)
byłoby bardziej odpowiednie do dodania formatowania-stringWithFormat:
co pozwala na formatowanie. W SwiftString(format:arguments:)
byłaby szybka wersja Obj-C-stringWithFormat:
NSString
metody nie zostały jeszcze zaimplementowane w SwiftString
.Nie
NSString
wymagane!lub
źródło
Twierdziłbym, że jedno i drugie
i
są dopuszczalne, ponieważ użytkownik zapytał o formatowanie, a oba przypadki pasują do tego, o co proszą:
Oczywiście ta pierwsza umożliwia lepszą kontrolę nad formatowaniem niż druga, ale to nie znaczy, że druga nie jest akceptowalną odpowiedzią.
źródło
źródło
Najpierw przeczytaj oficjalną dokumentację dla języka Swift.
Odpowiedź powinna być
Tutaj
1) Domyślnie dowolna wartość zmiennoprzecinkowa
double
-> Jeśli chcesz wyświetlić wartość zmiennoprzecinkową, musisz jawnie zdefiniować takie jak
Jest to o wiele bardziej jasne.
źródło
źródło
Wiem, że minęło dużo czasu od tej publikacji, ale wpadłem w podobną sytuację i stworzyłem klasę uproszczoną, aby uprościć moje życie.
Poniższy link wyślij do pełnego kodu źródłowego: https://gist.github.com/dedeexe/d9a43894081317e7c418b96d1d081b25
To rozwiązanie zostało oparte na tym artykule: http://vojtastavik.com/2015/03/29/real-time-formatting-in-uitextfield-swift-basics/
źródło
Jest proste rozwiązanie, którego nauczyłem się z „We <3 Swift”, jeśli nie możesz zaimportować Foundation , użyć round () i / lub nie chcesz String :
wynik: 31,726
źródło
Użyj następującego kodu:
źródło
Sukces, aby spróbować:
źródło