我有一个NSTimer
我正在使用scheduledTimerWithTimeInterval
方法,但我希望它作为参数的时间间隔是一个函数,而不是一个显式值。我怎么能这样做?
我的代码如下所示:
timer = NSTimer.scheduledTimerWithTimeInterval(time(), target: self, selector: "doStuff", userInfo: nil, repeats: true)
编译器使用第一个参数time()
编辑:错误是"额外参数'选择器'在电话"
答案 0 :(得分:1)
我不确定你为什么会出现那个错误,但time()
肯定不是你想要的时间间隔。这应该是计时器点火之间的秒数。对于像重复动画计时器这样的东西,通常是1 / 30.0或1 / 60.0。
time
函数(顺便说一句,它应该带一个参数)返回一个整数,它是“epoch”以来的秒数。在Mac OS X上,纪元是2001年1月1日的UTC时间上午12:00。
修改:您的评论就像您定义了自己的time
功能一样。我首先要将函数的名称更改为(例如)timeInterval
,以便它不会与系统的time
函数发生冲突。我会确保你的函数返回NSTimeInterval
,而不是Float
或其他数字类型,如:
func timeInterval() -> (NSTimeInterval) {
return 1/60.0
}
var timer = NSTimer.scheduledTimerWithTimeInterval(timeInterval(), target: self, selector: "doStuff", userInfo: nil, repeats: true)