我在Xcode 8中使用swift 3作为基本转换器进行应用,输入值通过按钮设置:
@IBAction func inputButton(_ sender: UIButton)
{
currentNumber = currentNumber * 10 + (the number I want to add)
labelText.text = "\(currentNumber)"
}
它完美无缺,但当我输入大约10个数字时,应用程序崩溃了。在我为" currentnumber"设置新值的行之后Xcode告诉我这个:
线程1:EXC_BAD_INSTRUCTION(代码= EXC_INPOV,子代码= 0x0)
答案 0 :(得分:2)
溢出(谢天谢地)是Swift中的一个错误。
在实际执行计算之前,您可以通过检查值是否超过Int.max
来阻止此操作。
以下是一些可以帮助您入门的代码:
guard let inputNumber = Int(inputString) else {
labelText.text = "input not a number or out of range"
return
}
guard currentNumber < (Int.max - inputNumber) / 10 else {
labelText.text = "overflow"
return
}
currentNumber = currentNumber * 10 + inputNumber
labelText.text = "\(currentNumber)"