Swift NSTimer使应用程序崩溃

时间:2015-03-15 23:53:32

标签: ios swift

调用时,应用程序崩溃。

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)但是每个代码都让应用程序崩溃了。这段代码有什么问题?

1 个答案:

答案 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

你需要在函数想要参数的地方添加一个冒号。