Stavo lavorando su un’applicazione che utilizzava un campo di testo e lo traduceva in un numero intero. Precedentemente il mio codice
textField.text.toInt()
lavorato. Ora Swift lo dichiara come un errore e mi sta dicendo di farlo
textField.text!.toInt()
e dice che non c’è toInt()
e provare a usare Int()
. Neanche questo funziona. Cosa è appena successo?
In Swift 2.x, la funzione .toInt()
stata rimossa da String
. In sostituzione, Int
ora ha un inizializzatore che accetta una String
Int(myString)
Nel tuo caso, potresti usare Int(textField.text!)
textField.text!.toInt()
di textField.text!.toInt()
Swift 1.x
let myString: String = "256" let myInt: Int? = myString.toInt()
Swift 2.x, 3.x
let myString: String = "256" let myInt: Int? = Int(myString)
let myString: NSString = "123" let myStringToInt: Int = Int(myString.intValue)
dichiara la tua stringa come object NSString e usa il getter intValue
Ho avuto lo stesso rilasciato nelle app di elaborazione dei pagamenti. Swift 1.0
let expMonth = UInt(expirationDate[0].toInt()!) let expYear = UInt(expirationDate[1].toInt()!)
Dopo in Swift 2.0
let expMonth = Int(expirationDate[0]) let expYear = Int(expirationDate[1])
È abbastanza facile creare il proprio metodo di estensione per rimetterlo in questo modo:
extension String { func toInt() -> Int? { return Int(self) } }
Questo mi ha dato anche degli errori!
Questo codice ha risolto i miei errori
let myString: String = dataEntered.text! // data entered in textField var myInt: Int? = Int(myString) // conversion of string to Int myInt = myInt! * 2 // manipulating the integer sum,difference,product, division finalOutput.text! = "\(myInt)" // changes finalOutput label to myInt