Ccna final exam - java, php, javascript, ios, cshap all in one. This is a collaboratively edited question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.
Tuesday, January 17, 2012
Is startUpdatingMyLocation mandatory to call the location manager"s didUpdateToLocation method in iphone sdk
I need a clarification that. Is startUpdatingMyLocation method mandatory to call didUpdateToLocation? isn't the didUpdateToLocation method automatically called when the location is updated?
Start standard location services by calling the startUpdatingLocation method. This service is most appropriate for applications that need more fine-grained control over the delivery of location events. Specifically, it takes into account the values in the desiredAccuracy and distanceFilter property to determine when to deliver new events. The precision of the standard location services are needed by navigation applications or any application where high-precision location data or a regular stream of updates is required. However, these services typically require the location-tracking hardware to be enabled for longer periods of time, which can result in higher power usage.
For applications that do not need a regular stream of location events, consider using the startMonitoringSignificantLocationChanges method to start the delivery of events instead. This method is more appropriate for the majority of applications that just need an initial user location fix and need updates only when the user moves a significant distance. This interface delivers new events only when it detects changes to the device’s associated cell towers, resulting in less frequent updates and significantly lower power usage.
Regardless of which location service you use, location data is reported to your application via the location manager’s associated delegate object. Because it can take several seconds to return an initial location, the location manager typically delivers the previously cached location data immediately and then delivers more up-to-date location data as it becomes available. Therefore it is always a good idea to check the timestamp of any location object before taking any actions. If both location services are enabled simultaneously, they deliver events using the same set of delegate methods.
So you can use any of the two , either startUpdatingLocation or startMonitoringSignificantLocationChanges to get the location updates but you will have to call any one of these for the delegate method being called. (IMHO)
The documents state
ReplyDeleteStart standard location services by calling the startUpdatingLocation
method. This service is most appropriate for applications that need
more fine-grained control over the delivery of location events.
Specifically, it takes into account the values in the desiredAccuracy
and distanceFilter property to determine when to deliver new events.
The precision of the standard location services are needed by
navigation applications or any application where high-precision
location data or a regular stream of updates is required. However,
these services typically require the location-tracking hardware to be
enabled for longer periods of time, which can result in higher power
usage.
For applications that do not need a regular stream of location events,
consider using the startMonitoringSignificantLocationChanges method to
start the delivery of events instead. This method is more appropriate
for the majority of applications that just need an initial user
location fix and need updates only when the user moves a significant
distance. This interface delivers new events only when it detects
changes to the device’s associated cell towers, resulting in less
frequent updates and significantly lower power usage.
Regardless of which location service you use, location data is
reported to your application via the location manager’s associated
delegate object. Because it can take several seconds to return an
initial location, the location manager typically delivers the
previously cached location data immediately and then delivers more
up-to-date location data as it becomes available. Therefore it is
always a good idea to check the timestamp of any location object
before taking any actions. If both location services are enabled
simultaneously, they deliver events using the same set of delegate
methods.
So you can use any of the two , either startUpdatingLocation or startMonitoringSignificantLocationChanges to get the location updates but you will have to call any one of these for the delegate method being called. (IMHO)