2010-03-15 8 views
1

J'ai une application qui a vérifié l'emplacement. Il demande à l'utilisateur d'utiliser l'emplacement et si l'utilisateur dit non sur le menu il y a un problème quand je charge la carte."Ne pas autoriser" dans LocationManager conserve les erreurs de consignation

Une fois que je sélectionne mapView, il demande à nouveau l'emplacement de l'utilisateur. Si l'utilisateur répond par la négative, ma console continue d'afficher les erreurs/avertissements ainsi que mon NSLog à partir de "didFailWithError" de ma classe de gestionnaire d'emplacements.

Existe-t-il un moyen d'arrêter le LocationManage: didFailWithErrors si l'utilisateur a déjà dit non? Je ne pense pas que Apple accepterait mon application si le fichier journal est rempli mon l'LocationManager

Voici un exemple de ce qui se répète dans la console

ERROR,Time,290362745.002,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1 
WARNING,Time,290362745.005,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1035.0 has been disconnected from daemon 
2010-03-15 12:19:05.002 SAQ[1035:207] LocationManager Error Denied by user 

Répondre

4

Documentation sur la méthode -didFailWithError: dit:

Si l'utilisateur refuse l'utilisation du service de localisation de votre application, cette méthode signale une erreur kCLErrorDenied. Dès réception d'une telle erreur, vous devez arrêter le service de localisation.

Donc après avoir reçu cette erreur, vous devriez message manager emplacement pour arrêter la mise à jour Lieu:

[manager stopUpdatingLocation]; 

Si vous utilisez MKMapView Je pense que sa propriété showsUserLocation NO devrait faire l'affaire.

+0

En effet .... Mon affichage de la carte était en train de charger showUserLocation pour les deux cas (location found of denied). Merci, frustrant quand la réponse est si simple ... Merci encore –

+0

Même si stopUpdatingLocation est appelé immediatley, je reçois toujours deux appels de didFailWithError. – AlexWien

0

Il est de votre responsabilité de vérifier le code d'erreur et d'arrêter la mise à jour de l'emplacement si le code d'erreur est kCLErrorDenied.

Questions connexes