Instance MethodDispatch
schedule(wallDeadline:repeating:leeway:)
func schedule(wallDeadline: DispatchWallTime, repeating interval: DispatchTimeInterval = .never, leeway: DispatchTimeInterval = .nanoseconds(0))
Parameters
wallDeadlineThe time at which the timer event will be delivered, subject to the leeway and other considerations described above. The deadline is based on
gettimeofday(3).repeatingThe repeat interval for the timer, or
.neverif the timer should fire only once.leewayThe leeway for the timer.
Discussion
Once this function returns, any pending source data accumulated for the previous timer values has been cleared. The next timer event will occur at wallDeadline and every repeating units of time thereafter until the timer source is canceled. If the value of repeating is .never, or is defaulted, the timer fires only once.
Delivery of a timer event may be delayed by the system in order to improve power consumption and system performance. The upper limit to the allowable delay may be configured with the leeway argument; the lower limit is under the control of the system.
For the initial timer fire at wallDeadline, the upper limit to the allowable delay is set to leeway. For the subsequent timer fires at wallDeadline + N * repeating, the upper limit is the smaller of leeway and repeating/2.
The lower limit to the allowable delay may vary with process state such as visibility of the application UI. If the timer source was created with flags TimerFlags.strict, the system will make a best effort to strictly observe the provided leeway value, even if it is smaller than the current lower limit. Note that a minimal amount of delay is to be expected even if this flag is specified.
Calling this method has no effect if the timer source has already been canceled.