每秒刷新标签

时间:2017-01-15 19:16:11

标签: ios xcode swift3

我尝试在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
         }

我希望有人可以帮助我:)。

2 个答案:

答案 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为例。您可以按照自己的方式更新标签。