所以,我正试图在swift中制作一个计时器(正确运行)。
func doSomething(){
println("Did something")
}
@IBActionFunc createTimer: AnyObject{
var timer = NSTimer(timeInterval: 0.2, target: self, selector: "doSomething", userInfo: nil, repeats: true)
}
@IBActionFunc stopTimer: AnyObject{
timer.invalidate()
}
其他选择:
var timer:AnyObject = AnyObject
func doSomething(){
println("Did something")
}
@IBActionFunc createTimer: AnyObject{
timer = NSTimer(timeInterval: 0.2, target: self, selector: "doSomething", userInfo: nil, repeats: true)
}
@IBActionFunc stopTimer: AnyObject{
timer.invalidate()
}
我不确定这是否真的有效。从我的测试来看,它并不是因为"计时器"被定义为局部变量(?),因此无法从其他函数(?)访问它。为了解决这个问题,我首先定义了" var timer"到AnyObject,以便以后可以重新定义它。可悲的是,我得到了疯狂的错误而且没有。我是否应该再做第二件事,或者第一件事是否有效?提前谢谢!
答案 0 :(得分:1)
你是正确的,因为你目前有一个局部变量,所以你不能在其他函数中引用它。您需要一个实例变量,例如:
class MyClass {
var timer: NSTimer
...
@IBActionFunc createTimer: AnyObject{
timer = NSTimer(timeInterval: 0.2, target: self, selector: "doSomething", userInfo: nil, repeats: true)
}
...