我正在寻找一种在swift 2中为NSTimer()变量赋值的方法。我将它用于秒表应用程序。
actionResult
我收到错误
“无法指定Nil输入”NSTimer“
答案 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()