我正在尝试学习Swift,我正在玩变量的基础知识 . 我创建了一个应用程序,当你按下一个按钮时,标签的值会改变,而当添加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',因为我还没弄明白我需要重命名它的地方,如果我只是在这里重命名它,应用程序显示一个空白屏幕,没有别的 .
1 回答
来自评论:
您描述的行为告诉我,您的Subtract One按钮连接到
plusone
和plustwo
函数 . 您可以通过控制单击Interface Builder中的按钮并检查连接来检查这一点 . 如果您看到TouchUpInside连接到两个功能,请通过单击x
删除一个以删除连接 .验证行为的另一种方法是将日志
print
语句添加到函数中,例如print("in plusone")
和print("in plustwo")
. 按Subtract One时,如果在控制台中看到这两条消息,则表示您已将按钮连接到@IBAction
.How did this happen? 当您在Interface Builder中复制已连接到
@IBAction
的按钮时,会经常发生这种情况 . 将它连接到新的@IBAction
不会替换第一个,它只是连接到它们,并在按下按钮时调用它们 .要重命名该功能,您需要更改该功能的名称,并在Interface Builder中删除并重新连接该连接 . 如上所述,按住Control键并单击Interface Builder中的按钮,删除与旧功能名称的连接,然后将按钮连接到新功能 .