2010-04-23 26 views
2

Je me demandais si quelqu'un pouvait me diriger vers (ou coller) du code pour gérer les mises à jour de l'emplacement central afin d'économiser de l'énergie. Pour autant que je sache, vous devriez arrêter les mises à jour de Core Location dès que vous obtenez une lecture de la précision désirée. Si vous n'obtenez pas une bonne précision de lecture après un certain temps, vous devez également arrêter les mises à jour (probablement en utilisant une minuterie). Chaque fois que vous arrêtez les mises à jour, vous devez déclencher une minuterie (environ 60 secondes) pour redémarrer le Core Location et obtenir une nouvelle lecture.Arrêtez les mises à jour de l'emplacement principal puis redémarrez-les avec un minuteur

Y at-il du code Apple qui fait tout cela? L'exemple de code LocateMe, TaggedLocations et les emplacements ne semble pas le faire.

Répondre

3

L'exemple LocateMe a le code dont vous avez besoin. Vous avez juste besoin de créer un second sélecteur à tirer. LocateMe appelle les éléments suivants dans sa 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 appelez la méthode stopUpdatingLocation l'argument de NSString = « Timed Out ». À l'intérieur de la méthode stopUpdatingLocation, le [locationManager stopUpdatingLocation] est appelé pour indiquer à CoreLocation de s'arrêter.

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

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

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

+0

Je regarde ce code maintenant et il a beaucoup de ce que je veux. La minuterie n'est pas exactement ce dont j'ai besoin, mais assez pour me lancer. Merci! –

+0

Vous êtes les bienvenus :) –