Conversión de cadena a Int con Swift
Básicamente, la aplicación calcula la aceleración ingresando la velocidad y el tiempo inicial y final y luego usa una fórmula para calcular la aceleración. Sin embargo, dado que los valores de los cuadros de texto son cadenas, no puedo convertirlos a números enteros.
@IBOutlet var txtBox1 : UITextField
@IBOutlet var txtBox2 : UITextField
@IBOutlet var txtBox3 : UITextField
@IBOutlet var lblAnswer : UILabel
@IBAction func btn1(sender : AnyObject) {
let answer1 = "The acceleration is"
var answer2 = txtBox1
var answer3 = txtBox2
var answer4 = txtBox3
Aceptado
Respuesta actualizada para Swift 2.0+ :
toInt()
El método da un error, ya que se eliminó String
en Swift 2.x. En cambio, el Int
tipo ahora tiene un inicializador que acepta String
:
let a: Int? = Int(firstTextField.text)
let b: Int? = Int(secondTextField.text)
Idea básica, tenga en cuenta que esto solo funciona en Swift 1.x (consulte la respuesta de ParaSara para ver cómo funciona en Swift 2.x):
// toInt returns optional that's why we used a:Int?
let a:Int? = firstText.text.toInt() // firstText is UITextField
let b:Int? = secondText.text.toInt() // secondText is UITextField
// check a and b before unwrapping using !
if a && b {
var ans = a! + b!
answerLabel.text = "Answer is \(ans)" // answerLabel ie UILabel
} else {
answerLabel.text = "Input values are not numeric"
}
Actualización para Swift 4
...
let a:Int? = Int(firstText.text) // firstText is UITextField
let b:Int? = Int(secondText.text) // secondText is UITextField
...