作为Swift编程的简介,我正在尝试制作一个小型计算器应用程序。尝试创建加减按钮功能时出现错误。单击该按钮的目的是,如果显示文本的值为> 0
,则在字符串的开头添加一个减号(即8 ---> -8
,并且如果显示文本的值为< 0
将显示文字的值乘以负1,然后将显示文字的值分配为新数字的字符串。
我的问题是,当我第一次单击减号按钮时,它按预期方式工作,但是,当我第二次单击减号(< 0
)时,显示文本仍在数字前保留减号。我的代码是:
@IBAction func pmButton(_ sender: Any) {
if toFloat(value: display.text!) < 0 {
display.text = NSNumber(value: (toFloat(value: display.text!) * -1)).stringValue
print(display.text!)
}
if toFloat(value: display.text!) > 0 {
display.text = "-" + display.text!
}
}
print(display.text!)
的值给出正确的值(没有减号),但是在实际标签上减号仍然存在。当我在字符串中添加一些错误的值时,甚至是这种情况。
display.text = NSNumber(value: (toFloat(value: display.text!) * -1)).stringValue + "abc"
将导致(-8 ---> -8abc
)。
在重新分配值之前(第4行),我还尝试添加print(display.text!)
,它会恢复为原始的负值。因此,似乎display.text
已在函数中分配,但从未在函数外部正确更新。
我敢肯定这是超级简单的事情,但似乎无法解决。
答案 0 :(得分:2)
在您的第一个if
块中,更改display.text
的值,以便同时满足第二个if
条件;只需使用else if
即可运行其中一个块。