前提・実現したいこと
一つの画面にTextFieldを2つ置いて(textField1とtextField2)textField1からtextField2の値を引いた数をlabelに表示したいです。
発生している問題・エラーメッセージ
textFieldを知るために色々試して、textField1とtextField2に入力された数が同じならlabelに同じと表示する、異なっていれば違うと表示するというコードはできたのですが、textField同士を計算する事が実装出来ていません。型変換が必要な事が現段階で分かっている事です。
該当のソースコード
import UIKit class ViewController: UIViewController { @IBOutlet weak var textField1: UITextField! @IBOutlet weak var textField2: UITextField! @IBOutlet weak var keisanLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // textField1&textField2の入力方法をナンバーパットに設定 textField1.keyboardType = UIKeyboardType.numberPad textField2.keyboardType = UIKeyboardType.numberPad } @IBAction func keisanButton(_ sender: Any) { // textField1と2に入力された文字が同じの場合は同じと表示、違う場合は違うと表示 if textField1.text == textField2.text { keisanLabel.text = "同じ" } else { keisanLabel.text = "違う" } } }
TextField同士で計算するために書いたコード
var result = Int(textField1.text!) - Int(textField2.text!) // エラー Expression type '@lvalue String?' is ambiguous without more context
追記 以下のコードで実装が出来、解決しました。
let ititext = Int(textField1.text!) let nitext = Int(textField2.text!) let kei = ititext! - nitext! keisanLabel.text = String(kei)
試したこと
型変換を勉強したり、色々コードを調べているのですが現段階では実装出来ていません。
ご教示頂けると幸いです。
補足情報(FW/ツールのバージョンなど)
Swift4 Xcode10
回答1件
あなたの回答
tips
プレビュー