我试图将字符串转换为Int,但每次执行此操作都会给我一个错误。
例如,我有UILabel
,并且会调用resultLabel
。我还有一个UITextField
。
所以我要做的是先UITextField
+秒UITextField
= resultLabel。
最重要的是,我希望用户在每个UITextField
中添加一个数字,以便在resultLabel
中获得最终答案。
例如1 + 1 = 2.但是我的应用程序给了我11或错误。
var numberOnScreen:Int = 0
@IBOutlet var first: UITextField!
@IBOutlet var second: UITextField!
@IBOutlet var resultLabel: UILabel!
@IBAction func calculate(_ sender: Any) {
numberOnScreen = Int(first.text!)!
numberOnScreen = Int(second.text!)!
resultLabel.text! = first.text! + second.text!
}
答案 0 :(得分:3)
你正在进行字符串连接。
首先确保您的文字字段文字不是nil
&将string
转换为int
,它可以是nil
。因此,您必须使用if let
来确保转换后的值不是nil
if let firstText = firstTextfield.text, let secondText = secondTextfield.text, let firstValue = Int(firstText), let secondValue = Int(secondText) {
let plusValue = firstValue + secondValue
}
答案 1 :(得分:0)
首先,如果您将+
与String
一起使用,则表示您正在连接两个字符串。
所以" 1" +" 1" =" 11"
尝试解决您的问题:
@IBAction func calculate(_ sender: Any) {
guard let first = first.text, let second = second.text, let firstNum = Int(first), let secondNum = Int(second) else {
return
}
let result = firstNum + secondNum
resultLabel.text = String(result)
}