• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSTimer Question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSTimer Question


  • Subject: Re: NSTimer Question
  • From: Andy Lee <email@hidden>
  • Date: Mon, 16 Feb 2009 09:09:40 -0500

On Feb 16, 2009, at 7:49 AM, Graham Cox wrote:
On 16 Feb 2009, at 11:44 pm, Andreas Grosam wrote:

how does a NSTimer object that has been setup with a repeating time interval calculate the time when it fires an event?

There may be two possibilities:
Say, the initial time is at t0, the interval is T, and the time when it fires the first event is at t1, the second at t2, etc.
The time when it fires the ith event will be ti:
A)
ti = t (i-1) + T


B)
ti = i * T + t0


Reason:
If I need a "tick" that corresponds to a current time, I would prefer method B (mean error remains stable).
In case A the firing time may fade away with respect to the initial time due to inherent inaccuracies. Although this error is certainly small compared to the error that we have when we measure the time when we actually do handle the event, but it may accumulate over a long duration. That is the error increases with time.


I may be wrong, but I believe it's A.

That's what I thought too (and was pretty sure), but a quick RTFD indicates otherwise:


<http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer.html >
A repeating timer reschedules itself based on the scheduled firing time, not the actual firing time. For example, if a timer is scheduled to fire at a particular time and every 5 seconds after that, the scheduled firing time will always fall on the original 5 second time intervals, even if the actual firing time gets delayed. If the firing time is delayed so far that it passes one or more of the scheduled firing times, the timer is fired only once for that time period; the timer is then rescheduled, after firing, for the next scheduled firing time in the future.

--Andy


_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >NSTimer Question (From: Andreas Grosam <email@hidden>)
 >Re: NSTimer Question (From: Graham Cox <email@hidden>)

  • Prev by Date: Re: NSTimer Question
  • Next by Date: Re: NSTimer Question
  • Previous by thread: Re: NSTimer Question
  • Next by thread: Re: NSTimer Question
  • Index(es):
    • Date
    • Thread