变量神秘地被评估为零

时间:2016-05-19 01:56:26

标签: xcode swift nstimer

我正在尝试在Xcode中设置一个视图控制器,其中标签由NSTimer更新。我使用的一些代码如下:

var secondsCounter = 0
var minutesCounter = 0
var timer = NSTimer()

override func viewDidLoad() {
    super.viewDidLoad()

    timer.invalidate()

    // start the timer
    timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)
}    
func timerAction() {
    secondsCounter += 1
    if secondsCounter >= 60 {
        secondsCounter -= 60
        minutesCounter += 1
    }
    if secondsCounter < 10
    {
        secondsLabel.text = "0" + "\(secondsCounter)"
    }
    else {
        secondsLabel.text = "\(secondsCounter)"
    }
    minutesLabel.text = "\(minutesCounter)"

}
    //MARK: Outlets
@IBOutlet weak var minutesLabel: UILabel!
@IBOutlet weak var secondsLabel: UILabel!

在尝试更新秒标签中的文本的行上,我一直收到“在解包可选值时意外发现nil”的错误。我不明白为什么这不起作用,因为我有另一个视图控制器具有完全相同的完全相同的代码。我调整了一些东西并且不再收到错误,但是由于标签只显示“0”,所以secondsCounter仍然是nil。我一直试图解决这个问题几个小时无济于事。我很感激任何建议!

1 个答案:

答案 0 :(得分:0)

尝试:

  • 在方法之前放置出口
  • 检查插座是否已连接
  • 检查故事板中的插座名称是否与代码中的插座名称相同