NSTimer' time'问题

时间:2014-07-10 22:22:56

标签: ios swift nstimer

我有一个NSTimer我正在使用scheduledTimerWithTimeInterval方法,但我希望它作为参数的时间间隔是一个函数,而不是一个显式值。我怎么能这样做?

我的代码如下所示:

   timer = NSTimer.scheduledTimerWithTimeInterval(time(), target: self, selector: "doStuff", userInfo: nil, repeats: true)

编译器使用第一个参数time()

进行投诉

编辑:错误是"额外参数'选择器'在电话"

1 个答案:

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