我尝试在swift 3中每秒刷新一次标签。 我总是得到以下错误:
Showing Recent Issues
Command failed due to signal: Segmentation fault: 11
这是我用过的代码:
var TimerBeacon = Timer.scheduledTimer(timeInterval: 1, target: self,
selector: Selector(("Timer")), userInfo: nil, repeats: true)
func Timer() {
//here is the label to refresh
}
我希望有人可以帮助我:)。
答案 0 :(得分:3)
看起来你的代码没有为Swift 3更新,并且可以使用一些更好的命名约定。
创建计时器:
let timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(update), userInfo: nil, repeats: true)
这是计时器每秒调用的函数:
func update() {
// here is the label to refresh
}
如果要停止计时器,请拨打invalidate()
:
timer.invalidate()
答案 1 :(得分:0)
无需计时器即可实现相同目的。使用以下代码
var iteration = 0
func updateLabel() {
iteration = iteration == Int.max ? 0 : (iteration + 1)
DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: {
self.label.text = "\(self.iteration)"
self.updateLabel()
})
}
}
请注意,我仅以iteration
为例。您可以按照自己的方式更新标签。