gpt4 book ai didi

swift - 想了解关系

转载 作者:搜寻专家 更新时间:2023-10-31 22:44:37 26 4
gpt4 key购买 nike

我是一名在 Xcode 8 中学习 Swift 3 的初学者,我正在构建一个名为“Eggtimer”的基本应用程序。代码写在下面,我不明白 timerlabel.text 是如何链接到计时器的,即使我没有在它们之间设置任何连接。

在星形 //* 旁边,我们还可以写 } else { timer.invalidate() 并且 labeltimer.text 很好地停止减少,怎么可能发生? timer 属性中的selector 是什么意思?抱歉我的英语不好,感谢您的回答。

class ViewController: UIViewController {
var timer = Timer()
var time = 210

func decreasetimer() {
if time > 0 {
time -= 1
timerlabel.text = String(time)
} else { //*
timerlabel.text = String(time)
}
}

@IBOutlet var timerlabel: UILabel!

@IBAction func timerstarter(_ sender: AnyObject) {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.processtimer), userInfo: nil, repeats: true)
}
}

最佳答案

让我们从底部开始:selector 指定应该每 1 秒调用一次的方法(timeInterval 参数)。在您的情况下,这应该更改为以下内容:

timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.decreasetimer), userInfo: nil, repeats: true)

如您所见,选择器 称为decreasetimer,这是您在顶部指定的方法。

计时器现在每次更新时都会调用此方法。在此方法中,您减少了 time var 并更新了 timerlabel 的文本。

timer.invalidate()time 达到 0 时停止 timer

我希望这能澄清您的问题。

关于swift - 想了解关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40258310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com