调用错误中的额外参数 'selector'
Extra argument 'selector' in call error
class ViewController: UIViewController {
func ChangePage()
{
NSLog("Hej")
}
var timers = NSTimer(NSTimeInterval(0.5), target:self, selector: "ChangePage", userInfo: nil, repeats: true)
}
我从 Xcode 6 得到以下错误:
call
中的额外参数 'selector'
我尝试了几种配置,是否与它在代码中的位置有关?
您应该在构造函数中添加 timeInterval,例如:
NSTimer(timeInterval: NSTimeInterval(0.5), target:self, selector: "ChangePage", userInfo: nil, repeats: true)
是的,放在哪里很重要。问题是,定时器是一个 属性,它是在初始化之前创建的。所以当它被创建时,self 是不存在的,但是你引用它,这就导致了问题。
您可能想使用:
var timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "changePage", userInfo: nil, repeats: true)
这个 returns 已经添加到 运行 循环并自动触发的计时器。
要停止计时器触发,您必须像这样使它无效
timer.invalidate()
class ViewController: UIViewController {
func ChangePage()
{
NSLog("Hej")
}
var timers = NSTimer(NSTimeInterval(0.5), target:self, selector: "ChangePage", userInfo: nil, repeats: true)
}
我从 Xcode 6 得到以下错误: call
中的额外参数 'selector'我尝试了几种配置,是否与它在代码中的位置有关?
您应该在构造函数中添加 timeInterval,例如:
NSTimer(timeInterval: NSTimeInterval(0.5), target:self, selector: "ChangePage", userInfo: nil, repeats: true)
是的,放在哪里很重要。问题是,定时器是一个 属性,它是在初始化之前创建的。所以当它被创建时,self 是不存在的,但是你引用它,这就导致了问题。
您可能想使用:
var timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "changePage", userInfo: nil, repeats: true)
这个 returns 已经添加到 运行 循环并自动触发的计时器。
要停止计时器触发,您必须像这样使它无效
timer.invalidate()