我正在尝试学习 Swift,并且正在研究变量的基础知识。我制作了一个应用程序,当您按下按钮时,标签的值会发生变化,虽然加 1 的按钮起作用,但减 1 的按钮不起作用。如果我将第一个按钮(plusone)更改为减一,那么它就会起作用,所以我认为这与代码的解析方式有关?您能解释一下这是如何工作的吗?提前致谢。
代码在这里:
import UIKit
class ViewController: UIViewController {
var value = 0
@IBOutlet var number: UILabel!
@IBAction func plusone(_ sender: Any) {
value = value+1
number.text = "\(value)"
}
@IBAction func plustwo(_ sender: Any) {
value = value-1
number.text = "\(value)"
}
}
如果重要的话,应用程序看起来像这样: Screenshot
第二个按钮被命名为“plustwo”,因为我还没有弄清楚还需要在哪里重命名它,如果我只是在这里重命名它,应用程序会显示一个空白屏幕,没有其他内容。
最佳答案
来自评论:
I changed plustwo to -2 and it works as intended. Pressing Add One adds one and pressing Substract One substracts one. I am not sure why.
您所描述的行为告诉我,您的减去一按钮已连接到plusone
和plustwo
函数。您可以通过control来检查这一点 - 单击Interface Builder中的按钮并检查连接。如果您看到TouchUpInside连接到两个功能,请通过单击x
删除连接来删除其中一个。
验证行为的另一种方法是将日志记录 print
语句添加到您的函数中,例如 print("in plusone")
和 print("in plustwo”)
。当您按下 Subtract One 时,如果您在控制台中看到两条消息,那么您就知道您的按钮已连接到两个 @IBAction
。
这是如何发生的?当您在 Interface Builder 中复制已经与 @IBAction
连接的按钮时,经常会发生这种情况。将其连接到新的 @IBAction
并不会取代第一个,它只是连接到它们两个,并在按下按钮时调用它们。
The second button is named 'plustwo' because I haven't figured out where else I need to rename it, if I just rename it here the app displays a blank screen and nothing else.
要重命名函数,您需要更改函数的名称,并在 Interface Builder 中删除并重新连接连接。。如上所述,control - 单击 Interface Builder 中的按钮并删除与旧函数名称的连接,然后将按钮连接到新函数。
关于ios - Swift:按下按钮时编辑标签的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49637501/