2011-06-02 4 views
1

Avec l'iPhone et l'objectif C, existe-t-il un moyen de caler ou d'effectuer une boucle de synchronisation pour permettre au GPS de rattraper et de renvoyer un ensemble de coordonnées valide?Besoin d'un délai d'attente pour le GPS

Actuellement, l'application fonctionne trop vite et le GPS ne peut pas fournir les coordonnées assez vite ...

Répondre

-1

Soit bloc à attendre pour les données ou ne mettent pas à jour quoi que ce soit si aucune donnée reçue. Il y a bien sûr usleep(), mais sans montrer le code et spécifiquement comment votre boucle est exécutée et par quel mécanisme (enfilé ou non) nous ne pouvons répondre qu'en termes généraux.

+0

N'utilisez pas sleep(). Utilisez NSTimer ou performSelectorAfterDelay :. – tomwhipple

0

En supposant que votre interrogation GPS s'exécute dans un thread différent de l'interface utilisateur, vous pouvez appeler les fonctions statiques NSThread sleepForTimeInterval ou sleepUntilDate du thread en attente des données GPS.

4

Depuis que vous avez dit que vous êtes sur l'iPhone, vous utilisez CLLocationManager. Il suffit de définir un délégué sur le gestionnaire et d'attendre le message locationManager:didUpdateToLocation:fromLocation: pour savoir quand les données GPS sont prêtes.

0

Si votre application mobile utilise le GPS, votre application doit être prête pour les mises à jour de localisation, même si votre application ne suit pas les mouvements .. Un cas courant serait où l'utilisateur mettrait votre application en arrière-plan et l'activerait plus tard dans un endroit complètement différent.

Sur iOS, créez une implémentation de CLLocationManagerDelegate comme Anomie a écrit. Et utilisez l'horodatage de la mise à jour pour évaluer la fraîcheur de l'emplacement.

Ne dormez pas & Sondage comme d'autres personnes ont suggéré.

Questions connexes