Int的类型的字符串类型

时间:2017-07-18 03:27:34

标签: ios swift uitextfield

我试图将字符串转换为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!
}

2 个答案:

答案 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)
}