Question

Je me demandais si quelqu'un pouvait me indiquer (ou collez) code pour traiter de désactiver les mises à jour Core Location pour économiser l'énergie.

Pour autant que je le comprends, vous devez arrêter les mises à jour Core Location dès que vous obtenez une lecture de précision souhaitée. Si vous ne recevez pas une bonne lecture de précision après un certain temps, vous devez également arrêter les mises à jour (en utilisant probablement une minuterie). Chaque fois que vous arrêtez les mises à jour, vous devez tirer une minuterie (environ 60 secondes) pour redémarrer Core Location et obtenir une nouvelle lecture.

Y at-il un code d'Apple qui fait tout cela? Les LocateMe, TaggedLocations et emplacements de code échantillon ne semblent pas le faire.

Était-ce utile?

La solution

L'exemple de LocateMe a le code dont vous avez besoin. Il vous suffit de créer un second sélecteur au feu. LocateMe appelle la suivante dans c'est la méthode de configuration ...

    [self performSelector:@selector(stopUpdatingLocation:) withObject:@"Timed Out" afterDelay:[[setupInfo objectForKey:kSetupInfoKeyTimeout] doubleValue]];

Il dit que, après un certain laps de temps (kSetupInfoKeyTimeout), s'il vous plaît appeler la méthode stopUpdatingLocation l'argument de NSString = « Timed Out ». Dans la méthode de stopUpdatingLocation, le [locationManager stopUpdatingLocation] est appelé à dire CoreLocation l'arrêt.

Alors, tout ce que vous devez faire est d'ajouter une autre sélection comme celui-ci ...

[self performSelector:@selector(timeToRestartCoreLocation) afterDelay: 60];

dans le procédé de stopUpdatingLocation, qui va appeler la méthode de timeToRestartCoreLocation au bout de 60 secondes. Ensuite, à l'intérieur de votre méthode de timeToRestartCoreLocation, appel [locationManager startUpdatingLocation] pour lancer CoreLocation à nouveau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top