Xcode NSTimer timeInterval参数不存在';不允许变量

Xcode NSTimer timeInterval参数不存在';不允许变量,xcode,swift,nstimer,Xcode,Swift,Nstimer,当我使用 timer = NSTimer.scheduledTimerWithTimeInterval(0.75, target: self, selector: Selector("drawInTime"), userInfo: nil, repeats: false) 它工作得很好,但是如果我想使用一个变量(而不是0.75)作为timeInterval参数 var waitTime = CGFloat(numberOMiliseconds) / 1000.0 timer = NSTimer

当我使用

timer = NSTimer.scheduledTimerWithTimeInterval(0.75, target: self, selector: Selector("drawInTime"), userInfo: nil, repeats: false)
它工作得很好,但是如果我想使用一个变量(而不是0.75)作为timeInterval参数

var waitTime = CGFloat(numberOMiliseconds) / 1000.0
timer = NSTimer.scheduledTimerWithTimeInterval(timeInterval: 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)

谢谢你,这很有效!这很简单,但是错误消息没有被修改,应该是“参数中的类型错误!”我同意这一点-但我认为编译器会尝试将您的调用映射到几个重载中的一个,对于这些重载,没有预期的参数具有
选择器
外部名称。
var waitTime = Double(numberOMiliseconds) / 1000.0
timer = NSTimer.scheduledTimerWithTimeInterval(waitTime, target: self, selector: Selector("drawInTime"), userInfo: nil, repeats: false)