2009-12-07 5 views
2

Dans mon viewcontroller, je crée un objet MKMapView. Je mets le délégué à soi-même, et dans le ViewController, je mis en œuvre:La méthode déléguée mapViewDidFailLoadingMap est appelée avec l'erreur = 0

- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error 

Cette méthode est appelée, mais dans le débogueur, je vois que error a la valeur 0x0

Cela se produit sur l'appareil, et dans le simulateur. J'ai besoin du code d'erreur, car je veux donner un message dans le cas où l'accès à Internet est indisponible, tout en ignorant les cas comme (à partir de l'API doc) "si une requête pour des cartes supplémentaires arrive alors qu'un précédent demande de tuiles est toujours en attente "(qui ne me semble pas un échec)

+0

donc dans le cas particulier, il échoue, savez-vous pourquoi? (c'est-à-dire testez-vous avec l'Internet éteint?) Avez-vous toujours un code d'erreur nul, ou seulement parfois? –

+0

Trois cas où mapViewDidFailLoadingMap est appelé: 1) internet désactivé 2) l'utilisateur vérifie que l'application ne peut pas utiliser l'emplacement 3) internet activé, mais ensuite défilement reapidly (que je suppose est la «demande de carreaux de carte supplémentaires .. Tous les cas donnent l'erreur 0il – Alan

Répondre

2

Je viens de faire quelques tests.

  1. Internet est désactivée: [description de l'erreur] = erreur Domaine = code NSURLErrorDomain = -1009 UserInfo = 0x46c6120 "pas de connexion Internet"
  2. Scrolling autour trop vite: erreur = nul (0x0)

Je ne sais pas s'il existe d'autres conditions d'erreur, mais au moins vous pouvez discriminer entre une erreur de conneciton Internet (auquel cas j'afficherai une alerte) et le défilement trop rapidement cas, dans lequel je l'ignorerai juste .

+0

Merci Il semble que je n'ai pas attendu assez longtemps pour voir une erreur non nulle. – Alan

Questions connexes