线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

时间:2016-05-06 16:29:47

标签: ios swift

class ViewController: UIViewController {
    @IBOutlet weak var label: UILabel!

    var userIsInTheMiddleOfTypingNumber: Bool = false

    @IBAction func appendDigit(sender: UIButton) {
        let digit = sender.currentTitle!

        if (userIsInTheMiddleOfTypingNumber) {
            label.text = label.text! + digit
        }
        else {
            label.text = digit
            userIsInTheMiddleOfTypingNumber = true
        }
    }
}

我目前正在创建一个计算器应用。出于某种原因,当我运行模拟器并尝试输入一些数字时,siumulator冻结,并且bad_instruction的错误出现在该行上:

label.text = digit

我该如何解决这种情况?

2 个答案:

答案 0 :(得分:1)

您似乎忘记将故事板中的标签与插座连接。

答案 1 :(得分:1)

看起来currentTitle属性为nil会导致崩溃。你没有进行任何nil检查就强行打开财产。

@IBAction func appendDigit(sender: UIButton) {
    if let digit = sender.currentTitle {
        if (userIsInTheMiddleOfTypingNumber) {
            label.text = label.text! + digit
        }
        else {
            label.text = digit
            userIsInTheMiddleOfTypingNumber = true
        }
    }
}

OR

这可能是@dasdom

指定的原因
相关问题