2012-06-01 2 views
0

Je suis en train d'obtenir l'emplacement actuel et je suis en cours d'exécution sur cette question:callbacks CLLocationManager (LocationManager: didUpdateToLocation: fromLocation et LocationManager: didFailWithError :) jamais appelé

90% des temps aprox. il fait juste OK: il obtient l'emplacement et appelle didUpdateToLocation: ou il échoue et appelle didFailWithError:. Tout comme prévu. Mais parfois (* toujours dans le simulateur iOS 4.2 et parfois sur un vrai iPhone 4S), il ne peut pas obtenir d'emplacement du tout et il n'appelle aucun callback (parfois il appelle les appels de DidWailError mais 2 ou 3 minutes après avoir commencé à mettre à jour l'emplacement, parfois il ne le fait jamais), donc je ne peux pas trouver un moyen d'être conscient de cela. Soit dit en passant, c'est l'appareil/simulateur qui ne parvient pas à obtenir l'emplacement parce que, lorsque cela se produit, l'application Cartes pas obtient l'emplacement non plus, montrant la roue d'activité animée indéfiniment. Les services sont activés et tout est bien configuré puisqu'il fonctionne la plupart du temps. Donc, la question: est-il un moyen que je peux être conscient de cette circonstance et de l'information de l'utilisateur?

Merci à tous à l'avance

Répondre

2

Je pense que la seule façon de contourner ce problème est de régler une minuterie et d'informer l'utilisateur qui n'a pas pu obtenir une solution de localisation si aucune des méthodes de délégué est appelé après durée raisonnable (disons 20 ou 30 secondes). Puis appelez stopUpdatingLocation et réessayez plus tard. Je ne sais pas si ce comportement est documenté mais il semble que vous n'obtiendrez pas de réponse du gestionnaire d'emplacement, car il peut rester longtemps dans un état où il ne peut pas encore obtenir un emplacement. corriger mais n'observe pas d'erreur non plus.

+0

C'est exactement ce que je pense et ce que je pensais faire. Merci pour votre réponse – sonxurxo

Questions connexes