NSTimer Countdown - updateCounter Swift 3.0 新语法?

NSTimer Countdown - updateCounter Swift 3.0 New Syntax?

我有一个简单的倒数计时器。还有一个显示倒计时的标签。

var swiftTimer = NSTimer()
var swiftCounter = 60

override func viewDidLoad() {

timerLabel.text = String(swiftCounter)

}

我把计数器减一秒。这个函数给我一个错误:

func updateCounter() {
    timerLabel.text = String(swiftCounter--)

错误声明:

'--' is deprecated: it will be removed in Swift 3

我意识到我必须将 -- 转换为 x -= 1(x 是变量)。我试过了

 func updateCounter() {
        timerLabel.text = String(swiftCounter -= 1)

    }

将计数器减少 1 秒,但我的计数器 (timerLabel) 变为空白。

请问适合我的情况的新 Swift 语法是什么?

* 更新:*

我还添加了一个条件,即我的计时器在达到零 (0) 时停止,我之前没有这样做,我的计时器进入了负值区域。我修改后的代码如下:

func updateCounter() {
    swiftCounter -= 1
    timerLabel.text = String(swiftCounter)

    if swiftCounter == 0 {
        swiftTimer.invalidate()
    }
}

希望对遇到类似情况的人有所帮助 ;)

您应该将逻辑分成 2 行,因为您要递减和保存然后转换为字符串以供显示,这是两件不同的事情:

SwiftCounter -= 1
timerLabel.text = String(SwiftCounter)

首先,这是警告,不是错误。

只需插入一个额外的行。

func updateCounter() {
   SwiftCounter -= 1
   timerLabel.text = String(SwiftCounter)

我编辑你的功能:

 func updateCounter() {
    SwiftCounter -= 1
    timerLabel.text = String(SwiftCounter)
 }
postfix func --(inout num: Int) {
 num = num - 1
 }

var a = 5

for _ in 0...4{
print(--a)
}