NSTimer timeInterval 参数不允许变量



>当我使用

timer = NSTimer.scheduledTimerWithTimeInterval(0.75, target: self, selector: Selector("drawInTime"), userInfo: nil, repeats: false)

它工作正常,但如果我想对 timeInterval 参数使用变量(而不是 0.75)

var waitTime = CGFloat(numberOMiliseconds) / 1000.0
timer = NSTimer.scheduledTimerWithTimeInterval(timeInterval: waitTime, target: self, selector: Selector("drawInTime"), userInfo: nil, repeats: false)

timer = NSTimer.scheduledTimerWithTimeInterval(waitTime, target: self, selector: Selector("drawInTime"), userInfo: nil, repeats: false)

然后我收到以下错误"Swift 编译器错误:调用中额外的参数'选择器'"。有人可以帮忙吗?

如果你看一下scheduledTimerWithTimeInterval签名:

class func scheduledTimerWithTimeInterval(ti: NSTimeInterval, target aTarget: AnyObject, selector aSelector: Selector, userInfo: AnyObject?, repeats yesOrNo: Bool) -> NSTimer

注意到该方法没有第一个参数的外部名称(这是方法的默认值),因此您不必使用timeInterval外部名称。

此外,它的预期类型是 NSTimeInterval ,这是 Double 的类型别名,但您传递的是CGFloat

因此,您应该将代码更改为:

var waitTime = Double(numberOMiliseconds) / 1000.0
timer = NSTimer.scheduledTimerWithTimeInterval(waitTime, target: self, selector: Selector("drawInTime"), userInfo: nil, repeats: false)

最新更新