2014-11-23 3 views
2

내가 사용하는 경우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 compiler error : 추가 인수 'selector in'in call". 누군가 도와 줄 수 있습니까? 당신이 scheduledTimerWithTimeInterval 서명을 보면

답변

3

는 :

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) 
+0

감사합니다, 그것을 작동합니다! 쉽지만 오류 메시지가 적용되지 않았으므로 "잘못된 유형의 인수!"와 같아야합니다. – Swiftiti

+0

나는 그것에 동의한다. -하지만 나는 컴파일러가 여러분의 호출을'selector '외부 이름을 가진 예상 매개 변수가없는 여러 오버로드 중 하나에 매핑하려고 시도한다고 생각한다. – Antonio