class MyController {
override func viewDidLoad() {
super.viewDidLoad()
/* Repeats every 10 seconds. handleTimer() can feel free to invalidate
and re-schedule this timer at a different interval */
NSTimer.scheduledTimerWithTimeInterval(10.0, self, "handleTimer:", nil, true)
}
func handleTimer(timer: NSTimer) {
/* Do my awesome GameKit stuff here, using stored properties to refer to
all my scene objects. (Since I don't get any params passed in) */
/* Now play with the timer any way I like, e.g.: */
let newInterval = timer.timeInterval + 1.0
timer.invalidate()
NSTimer.scheduledTimerWithTimeInterval(newInterval, self, "handleTimer:", nil, true)
}
}
1 回答
您只是错误地将参数调用到
scheduledTimerWithTimeInterval
方法 .这个API以非常_2736685的方式工作:它们不是一个闭包,而是一个
target
对象(在其上调用选择器)和String类型的方法选择器 .target
通常只是self
,例如您正在启动计时器的控制器也应该接收计时器事件 .selector
应该只是一个硬编码的字符串:"handleTimer:"
所以你有了: