调用时,应用程序崩溃。
func handlers() {
var timer = NSTimer.scheduledTimerWithTimeInterval(0.5,
target: self, selector: "timeListener", userInfo: data, repeats: true)
}
func timeListener(timer:NSTimer) {
var data: AnyObject? = timer.userInfo
println(data);
}
尝试了一些事情,尝试了另一个答案(Passing parameters to a method called by NSTimer in Swift)但是每个代码都让应用程序崩溃了。这段代码有什么问题?
答案 0 :(得分:7)
将选择器更改为timeListener:
(注意冒号)。
var timer = NSTimer.scheduledTimerWithTimeInterval(0.5,
target: self, selector: "timeListener:", userInfo: data, repeats: true)
这是因为在Objective-C中,
func timeListener(timer:NSTimer)
将写为
-(void)timeListener:(NSTimer*)timer
你需要在函数想要参数的地方添加一个冒号。