init(fireAt:interval:target:selector:userInfo:repeats:)
Initializes a timer using the specified object and selector.
Declaration
init(fireAt date: Date, interval ti: TimeInterval, target t: Any, selector s: Selector, userInfo ui: Any?, repeats rep: Bool)Parameters
- date:
The time at which the timer should first fire.
- ti:
For a repeating timer, this parameter contains the number of seconds between firings of the timer. If
tiis less than or equal to0.0, this method chooses the nonnegative value of0.0001seconds instead. - t:
The object to which to send the message specified by
aSelectorwhen the timer fires. The timer maintains a strong reference to this object until it (the timer) is invalidated. - s:
The message to send to
targetwhen the timer fires.The selector should have the following signature:
timerFireMethod:(including a colon to indicate that the method takes an argument). The timer passes itself as the argument, thus the method would adopt the following pattern:- (void)timerFireMethod:(NSTimer *)timer - ui:
Custom user info for the timer. The timer maintains a strong reference to this object until it (the timer) is invalidated. This parameter may be
nil. - rep:
If True, the timer will repeatedly reschedule itself until invalidated. If False, the timer will be invalidated after it fires.
Return Value
The receiver, initialized such that, when added to a run loop, it will fire at date and then, if repeats is true, every ti after that.
Discussion
You must add the new timer to a run loop, using add(_:forMode:). Upon firing, the timer sends the message aSelector to target. (If the timer is configured to repeat, there is no need to subsequently re-add the timer to the run loop.)
See Also
Creating a Timer
scheduledTimer(withTimeInterval:repeats:block:)scheduledTimer(timeInterval:target:selector:userInfo:repeats:)scheduledTimer(timeInterval:invocation:repeats:)init(timeInterval:repeats:block:)init(timeInterval:target:selector:userInfo:repeats:)init(timeInterval:invocation:repeats:)init(fire:interval:repeats:block:)