Also kann ich das machen:
var stringNumb: NSString = "1357"
var someNumb: CInt = stringNumb.intValue
Aber ich kann den Weg nicht finden, es w / a zu tun String
. Ich möchte etwas tun wie:
var stringNumb: String = "1357"
var someNumb: Int = Int(stringNumb)
Das funktioniert auch nicht:
var someNumbAlt: Int = myString.integerValue
var someNumb: Int? = Int(stringNumb)
odervar someNumb = Int(stringNumb)
Antworten:
Mit Swift 2.0 können Sie Integer mit dem Konstruktor initialisieren
quelle
toInt()
Methode nicht mehr als Teil vonString
. DieserInt
Konstruktor ist nun die einzige Möglichkeit, Zeichenfolgen in Ints zu konvertieren.Ich würde verwenden:
Hinweis
toInt()
:quelle
var someNumb: Int = stringNumber.toInt()!
Variable explizit deklarieren, ein Ausrufezeichen hinzufügen müssen: wie @NateCook hervorhob!
den Aufruf anzulegen, können Sie Ihre Variable als optional deklarieren :someNumb: Int? = stringNumber.toInt()
. Dann wird das Typensicherheitssystem wissen, dass esfoo
möglicherweise nicht existiert. Das Putten!
stürzt natürlich ab, wenn Ihre Zeichenfolge nicht in eine Zahl konvertiert werden kann.In Swift 3.0
Typ 1: Konvertieren Sie NSString in String
Typ 2: Wenn der String nur eine Ganzzahl hat
Typ 3: Wenn der String einen Float-Wert hat
quelle
stringToFloat
is zu überprüfen!= nil
, sollten Sie verwendenif let
.Die Methode, die Sie wollen, ist
toInt()
- Sie müssen ein wenig vorsichtig sein, da dietoInt()
ein optionales Int zurückgibt.quelle
toInt()
ist der richtige Weg, es zu tun. Optionals sind ein zentraler Bestandteil der SpracheWenn Sie
NSString
nur eine verwenden können.Es ist ziemlich ähnlich zu Objective-C. Alle sind der Datentyp es aber erfordern die
as NSString
ZugabeAußerdem wurde eine
toInt()
Funktion hinzugefügt. Siehe Apple Inc. "The Swift Programming Language". iBooks. https://itun.es/us/jEUH0.l Seite 49quelle
as NSString
. behoben es @gwcoffeyDie obige Antwort hat mir nicht geholfen, da mein Zeichenfolgenwert "700.00" war.
mit Swift 2.2 funktioniert das bei mir
Ich habe myInt an NSFormatterClass übergeben
Danke an diesen Blogbeitrag.
quelle
Double()
so, wie wir es verwendenInt()
. Keine Überbrückung zu NSString erforderlich.Double()
dann verwendenInt()
. So:if let d = Double("700.00") { let i = Int(d); print (i) }
:)Sie können von String zu NSString überbrücken und von CInt zu Int wie folgt konvertieren:
quelle
Zu diesem Zweck habe ich eine Erweiterung geschrieben. Es wird immer ein zurückgegeben
Int
. Wenn die Zeichenfolge nicht in eine passtInt
, wird 0 zurückgegeben.quelle
return self.toInt() ?? 0
. Es ist wahrscheinlich besser, es einfach so inline zu schreiben, als eine Erweiterungsmethode dafür zu haben.Eine allgemeinere Lösung könnte eine Erweiterung sein
Dies erweitert beispielsweise das schnelle native String-Objekt um toFloat
quelle
String in Int 2.0 in Int konvertieren:
verwenden
.intergerValue or intValue for Int32
quelle
8: 1 Gewinnchancen (*)
oder
Int(String)
gibt ein optionales zurückInt?
, keinInt
.Sichere Verwendung: Nicht explizit auspacken
oder
(*) Keine der Antworten bezog sich tatsächlich darauf, warum
var someNumb: Int = Int(stringNumb)
nicht funktionierte.quelle
Einfach aber schmutzig
Der Verlängerungsweg
Das ist wirklich besser, weil es gut mit Gebietsschemas und Dezimalstellen funktioniert.
Jetzt können Sie einfach tun:
quelle