1. ホーム
  2. ios

[解決済み] Swiftで文字列をIntに変換する

2022-03-14 15:32:07

質問

このアプリケーションは基本的に初速と終速、時間を入力し、数式で加速度を計算するものです。しかし、テキストボックスの値が文字列のため、整数に変換することができません。

@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

解決方法は?

基本的な考え方 Swift 1.x でのみ動作することに注意してください。 (チェックアウト ParaSaraの回答 を使えば、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"
    }

Swift 4に対応したアップデート

...
let a:Int? = Int(firstText.text) // firstText is UITextField
let b:Int? = Int(secondText.text) // secondText is UITextField
...