Je ne reçois aucun rappel de localisation sur sim ou sur un périphérique. J'ai ce code appelé:Pourquoi mon délégué CLLocationmanager n'est-il pas appelé?
- (void)startLocationCallbacks: (NSObject*) ignore
{
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
locationManager.distanceFilter = MINIMUM_METERS;
[locationManager startUpdatingLocation];
NSLog(@"[DEBUG] [locationManager startUpdatingLocation] (%@, %@)", locationManager, locationManager.delegate);
}
et Consignation des instructions au sommet des deux
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
et
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
mais ni déclaration de log est jamais appelé. Les notifications de lieu sont activées pour mon application (comme indiqué dans Paramètres, plus j'ai dit "Autoriser".)
Quelles sont les raisons possibles pour lesquelles je ne reçois pas de mises à jour de localisation?
Config/autres informations:
- J'ai alloué LocationManager, et enregistré dans une propriété de retenir.
- J'ai appelé startUpdatingLocation
- J'utilise 4.1 SDK
- Le problème est à la fois iPod-touch Sim & (2ème génération) & iPhone-3, tous en cours d'exécution 4.1
- notifications d'emplacement sont autorisés dans mon application (à la fois comme indiqué dans Paramètres et parce que j'ai cliqué sur "autoriser" dans l'alerte.)
- J'ai utilisé CLLocationManager avec succès avant (dans de nombreuses applications d'expédition!) Ceci est un vrai coup de poing pour moi.
Merci!
NOTE: Je l'ai vu plusieurs autres questions SO similaires, ils n'ont pas aidé. L'ensemble "allume ton wifi", "n'utilise pas sim", etc., chose ne s'applique pas, ici. Pas que je puisse dire, de toute façon. J'espère trouver une liste de toutes les raisons pour lesquelles je ne pourrais pas obtenir les rappels, donc je peux les vérifier. Merci! – Olie
Avez-vous essayé de tester si le délégué est notifié? Exécutez '[locationManager.delegate locationManager: locationManager didUpdateToLocation: newLocation fromLocation: oldLocation];' Si vous exécutez cette opération, votre délégué est notifié comme prévu, cela signifie que vos appareils ne peuvent pas obtenir d'emplacement du tout. Si le délégué ne reçoit pas de notification, cela peut signifier un bug sur votre code avec l'objet délégué ou un bug sur le SDK (très très improbable). – vfn
Un autre indice: J'ai désactivé les notifications d'emplacement dans les paramètres, en essayant de l'obtenir pour me demander à nouveau. Pas de demande En outre, aucune erreur "utilisateur refusé" (didFailWithError: ...) C'est vraiment comme si mon gestionnaire de localisation ne faisait pas d'étincelles. Ou ne pas me reconnaître en tant que délégué. Lorsque j'inspecte locationManager.delegate, c'est la bonne chose. Grr, marmonner, grommeler! – Olie