2009-11-12 4 views
2

J'utilise une classe personnalisée pour mettre à jour l'emplacement de l'utilisateur. Lors de l'initialisation de la classe, créer un objet CLLocationManager à être utilisé par la classeiPhone - CLLocationManager init renvoie zéro

CLLocationManager *locManager = [[CLLocationManager alloc] init]; 
[self setLocationManager:locManager]; 

La ligne de retour est un zéro CLLocationManager * locManager = [[CLLocationManager alloc] init]; qui est ce qui provoque un problème.

Ce code fonctionne très bien la plupart du temps. Mais sur un périphérique particulier (OS Version 3.1), l'init renvoie un zéro. Une idée de pourquoi CLLocationManager renverrait un zéro à l'initialisation?

Merci.

+0

+1. Même problème ici. –

Répondre

2

Lorsqu'une application initialise les services de localisation, le système d'exploitation demande à l'utilisateur si cela est correct. S'ils disent non, il est possible de ne rien obtenir lors des courses suivantes. Vous voudrez peut-être vérifier cela et dégrader avec élégance les fonctionnalités.

+0

Mais pendant le test sur cet appareil, j'ai toujours sélectionné le bouton "OK". À un moment donné, il s'est écrasé (encore une fois en raison des services de localisation) et à partir de ce moment, chaque fois que la valeur de CLLocationManager est nulle. L'utilisateur ne devrait-il pas avoir l'invite? – lostInTransit

+0

Je soulignais une situation où les services de localisation pourraient renvoyer zéro (bien que techniquement, vous devriez obtenir un locationManager: didFailWithError). Si ce n'est pas le cas, il se passe quelque chose d'autre. Peut-être que vous voulez essayer de réinitialiser les avertissements de localisation dans les paramètres et voir si cela vous permet de commencer avec une table rase. – Ramin

+0

Je suppose que didFailWithError étant la méthode de CLLocationManagerDelegate, il ne sera pas déclenché, sauf si CLLocationManager a une valeur et son délégué est défini? Ici, l'objet CLLocationManager lui-même est nul. Ajout du code et mise en évidence de la ligne erronée – lostInTransit

Questions connexes