1

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

var swiftTimer = NSTimer()
var swiftCounter = 60

override func viewDidLoad() {

timerLabel.text = String(swiftCounter)

}

我将计数器减少一秒。这个函数给了我一个错误:

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

埃罗指出:

'--' 已弃用:它将在 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()
    }
}

希望它可以帮助任何有类似情况的人;)

4

4 回答 4

2

首先,这是一个警告,而不是错误。

只需插入一个额外的行。

func updateCounter() {
   SwiftCounter -= 1
   timerLabel.text = String(SwiftCounter)
于 2016-04-25T14:03:33.147 回答
1

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

SwiftCounter -= 1
timerLabel.text = String(SwiftCounter)
于 2016-04-25T14:03:21.307 回答
1

我编辑你的功能:

 func updateCounter() {
    SwiftCounter -= 1
    timerLabel.text = String(SwiftCounter)
 }
于 2016-04-25T14:04:56.410 回答
0
postfix func --(inout num: Int) {
 num = num - 1
 }

var a = 5

for _ in 0...4{
print(--a)
}
于 2016-04-25T14:45:07.533 回答