2010-04-20 12 views
1

J'ai donc suivi d'autres sujets connexes, mais pour une raison quelconque, j'ai toujours cette erreur et je suis sur le point de m'arracher les cheveux. J'ai implémenté locationManager: didFailWithError pour vérifier et voir si un utilisateur sélectionne 'Ne pas autoriser' pour utiliser l'emplacement actuel.iPhone locationManager: problème de didFailWithError lorsque le GPS est désactivé

-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { 
NSLog(@"IN ERROR"); 
if ([error code] == kCLErrorDenied){ 
[manager stopUpdatingLocation]; 
} 
} 

Cependant, l'erreur suivante apparaît toujours lorsque l'utilisateur sélectionne « Ne laissez pas les » ... il est étrange, en particulier l'ordre que le texte « ERREUR » apparaît.

erreur, Temps, 293.420.691,000, Fonction, "vide CLClientHandleDaemonDataRegistration (__ CLClient *, const CLDaemonCommToClientRegistration *, const __CFDictionary *)", le serveur n'a pas accepter l'inscription du client 1 2010-04-19 21 : 44: 51,000 testApp [1414: 207] eRREUR

Ainsi, il est sortie cette erreur avant même qu'il ait une chance d'entrer dans la fonction didFailWithError. Est-ce que quelqu'un a des idées de ce qui pourrait arriver? Le reste du code locationManager est le suivant:

self.locationManager = [[[CLLocationManager alloc] init] autorelease]; 
locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer; 
locationManager.distanceFilter = 2; 
[locationManager startUpdatingLocation]; 

Répondre

0

Cela ressemble à un message d'information provenant de l'emplacement principal. Il ne plante pas votre application, l'utilisateur ne la voit pas et appelle toujours didFailWithError avec le code d'erreur correct.

Lors de mes tests, le message apparaît sur le simulateur et l'appareil iPhone (3.1.3) et sur le simulateur d'iPad mais pas sur l'appareil iPad (3.2).

+0

Merci DyingCactus ... Je pense que je suis juste trop paranoïaque à propos d'Apple rejetant mon application à cause de petites choses comme ça, mais si c'est normal, alors je ne vais pas perdre plus de sommeil par-dessus. Merci! – BenG

0

Si vous utilisez également MapKit, ceci est une erreur dans MapKit. MapKit enregistre avec Core Location, puis ne gère pas correctement l'erreur signalée lorsque l'utilisateur rejette la mise à jour de l'emplacement ou échoue. Il devrait transmettre cette erreur via une méthode déléguée (comme c'est le cas pour les erreurs de géocodage), mais ne le fait pas. Malheureusement, je n'arrive pas à trouver un moyen d'intercepter le message à partir de l'emplacement principal, car MapKit maintient une instance de CLLocationManager qu'il utilise pour obtenir l'emplacement, et c'est celui qui rapporte l'erreur à son délégué.