无法在swift 2中为NSTimer变量设置NIL值

时间:2016-03-13 16:33:43

标签: ios swift nstimer

我正在寻找一种在swift 2中为NSTimer()变量赋值的方法。我将它用于秒表应用程序。

actionResult

我收到错误

  

“无法指定Nil输入”NSTimer“

4 个答案:

答案 0 :(得分:5)

您无法设置它,因为计时器不是可选变量。为了能够设置为零,你必须这样做。

var timer:NSTimer? = NSTimer()    

    @IBAction func stop(sender: AnyObject) 
    {
      if let aTimer = timer {
         aTimer.invalidate()
         timer = nil
      } else {
        //no timer to stop. Make sure you have a valid timer created
      } 
    }

答案 1 :(得分:4)

正如其他答案和评论所述,无法将非可选变量设置为nil。这是Swift的基本概念之一。

NSTimer变量应该是可选的,启动和停止计时器的最可靠方法是

var timer : NSTimer?

func startTimer()
{
   if timer == nil {
      timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector, userInfo: nil, repeats: true) 
   }
}

func stopTimer()
{
   if timer != nil {
      timer!.invalidate() 
      timer = nil
   }
}

它始终检查计时器的状态。

答案 2 :(得分:3)

var timer: NSTimer? = NSTimer()

timer = nil

Swift 4.x

var timer:Timer? = Timer()

timer = nil

答案 3 :(得分:3)

声明您的timer如下:

var timer: NSTimer? = NSTimer()