# NSTimer class reference

mccallum@gnu.ai.mit.edu
rfm@gnu.org
1995, 1996, 1999 Free Software Foundation, Inc.
Software documentation for the NSTimer class
Foundation/NSTimer.h

An `NSTimer` provides a way to send a message at some time in the future, possibly repeating every time a fixed interval has passed. To use a timer, you can either create one that will automatically be added to the run loop in the current thread (using the -addTimer:forMode: method), or you can create it without adding it then add it to an NSRunLoop explicitly later.

NB. You may not use -init or +new to create a timer, as the timer must be properly initialised to send an action after some interval.

Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.
scheduledTimerWithTimeInterval:
ti
invocation:
invocation
repeats:
f
Create a timer which will fire after ti seconds and, if f is `YES`, every ti seconds thereafter. On firing, invocation will be performed.
This timer will automatically be added to the current run loop and will fire in the default run loop mode.
scheduledTimerWithTimeInterval:
ti
target:
object
selector:
selector
userInfo:
info
repeats:
f
Create a timer which will fire after ti seconds and, if f is `YES`, every ti seconds thereafter. On firing, the target object will be sent a message specified by selector and with the timer as its argument.
This timer will automatically be added to the current run loop and will fire in the default run loop mode.
timerWithTimeInterval:
ti
invocation:
invocation
repeats:
f
Create a timer which will fire after ti seconds and, if f is `YES`, every ti seconds thereafter. On firing, invocation will be performed.
NB. To make the timer operate, you must add it to a run loop.
timerWithTimeInterval:
ti
target:
object
selector:
selector
userInfo:
info
repeats:
f
Create a timer which will fire after ti seconds and, if f is `YES`, every ti seconds thereafter. On firing, the target object will be sent a message specified by selector and with the timer as its argument.
NB. To make the timer operate, you must add it to a run loop.
fire
Fires the timer... either performs an invocation or sends a message to a target object, depending on how the timer was set up.
If the timer is not set to repeat, it is automatically invalidated.
Exceptions raised during firing of the timer are caught and logged.
fireDate
Returns the date/time at which the timer is next due to fire.
initWithFireDate:
fd
interval:
ti
target:
object
selector:
selector
userInfo:
info
repeats:
f
Initialise the receive, a newly allocated NSTimer object.
The ti argument specifies the time (in seconds) between the firing. If it is less than or equal to 0.0 then a small interval is chosen automatically.
The fd argument specifies an initial fire date copied by the timer... if it is not supplied (a `nil` object) then the ti argument is used to create a start date relative to the current time.
The f argument specifies whether the timer will fire repeatedly or just once.
If the selector argument is zero, then then object is an invocation to be used when the timer fires. otherwise, the object is sent the message specified by the selector and with the timer as an argument.
The object and info arguments will be retained until the timer is invalidated.
invalidate
Marks the timer as invalid, causing its target/invocation and user info objects to be released.
Invalidated timers are automatically removed from the run loop when it detects them.
isValid
Checks to see if the timer has been invalidated.
setFireDate:
fireDate
Change the fire date for the receiver.
NB. You should NOT use this method for a timer which has been added to a run loop. The only time when it is safe to modify the fire date of a timer in a run loop is for a repeating timer when the timer is actually in the process of firing.
timeInterval
Returns the interval between firings, or zero if the timer does not repeat.
userInfo
Returns the user info which was set for the timer when it was created, or `nil` if none was set or the timer is invalid.