Reputation:
I have the following line of code:
changeColour = NSTimer.scheduledTimerWithTimeInterval(TIMES, target: self, selector: "changeColourOfPage", repeats: true)
but it gives the error "Extra argument 'selector' in call"
when I change the TIMES
variable to a number like 1.0
, it works fine. The variable TIMES
is set to 1.0
.
Is this just a glitch, or am I being stupid about something? I need to use it to run a method at random intervals.
Please help!
Upvotes: 3
Views: 3053
Reputation: 64634
It looks like you're missing the userInfo argument. Try this:
Swift 2
let TIMES = 1.0
var changeColour = NSTimer.scheduledTimerWithTimeInterval(TIMES, target: self, selector: "restart", userInfo: nil, repeats: true)
Swift 3, 4, 5
let TIMES = 1.0
var changeColour = Timer.scheduledTimer(timeInterval: TIMES, target: self, selector: #selector(restart), userInfo: nil, repeats: true)
Upvotes: 5
Reputation: 953
Just had this same issue. For me the problem was that I was passing a time interval as a Float not a Double. Simple fix was (using the code from the original post):
NSTimer.scheduledTimerWithTimeInterval(Double(TIMES), target: self, selector: Selector("changeColourOfPage"), userInfo:nil, repeats: true)
I had the same error message and once I cast the time as a Double it worked fine. Hope that helps someone!
Upvotes: 25