Chapter 5, page 114: Why more than 3 minutes?


In the -(void)locationManager:(CLLocationManager *)manager didUpateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation, there’s code that throws out any newLocation object that is older than 3 minutes to avoid using cached data. My question is why choose 3 minutes? It looks like the delegate method gets called frequently so the data doesn’t get stale for too long.

Thanx in advance!


The comments in the chapter say that you get passed the “last found” location first. The way I understood this, was that the last found location could have been, for instance, hours ago, and thus completely invalid. You don’t want the map to zoom and show one location, only to move to a completely different location a second or two later, it would confuse the user.

Like you said, the location updates happen pretty frequently, so much so that you wouldn’t expect normal updates (with the frequency asked for in this application) to take three minutes to be passed to the applciation.


If you check your location, then get on a plane (in Airplane Mode, for safety, you know), when you show up at your destination, the first value you get back from Core Location was where you took off from.