Ceci est dû à la façon dont MKMapViewfonctionne. Il y a une opération en attente, si MapKit est retenue le MKMapViewet il n'a pas réellement été désallouée encore. C'est pas en soi un problème. Le problème est que cela continue d' envoyer des messages à votre délégué.
La solution est simple: Dans le cadre du nettoyage de votre contrôleur de vue de définir le délégué de la vue de la carte nil, ce qui empêchera MKMapViewd'envoyer des messages.
Ceci est documenté dans MKMapViewDelegate Protocole de référence :
Avant de libérer un objet MKMapView pour lequel vous avez défini un délégué, souvenez-vous de définir la propriété délégué de cet objet à zéro. Un endroit où vous pouvez faire est dans la méthode dealloc où vous disposez de la vue de la carte.
Edit: Donnez un Oscar upvote aussi bien, juste au-dessous, qui a fourni la citation de documents ici.
Compte tenu de l' ARC, je suggère que cela signifie que vous devez définir le délégué de votre point de vue sur la carte à nilvotre contrôleur de vue de dealloc.