Dette er på grunn av måten MKMapViewfungerer. Det er en operasjon som venter, så MapKit er beholdt MKMapView, og det har faktisk ikke blitt deallocated ennå. Det er ikke i seg selv et problem. Problemet er at det fortsatt sende meldinger til din delegat.
Løsningen er enkel: Som en del av visningen kontrolleren opprydding satt kartvisningen er delegat til nil, som vil hindre MKMapViewfra å sende meldinger til det.
Dette er dokumentert i MKMapViewDelegate Protocol Reference :
Før du slipper en MKMapView objekt som du har satt en delegat, må du huske å sette dette objektets delegat eiendom til null. Ett sted du kan gjøre dette er i dealloc metode der du kaster kartvisningen.
Edit: Gi Oscar en upvote også, like nedenfor, som leverte dokumentasjonen sitat her.
Gitt ARC, foreslår jeg at dette betyr at du bør sette inn kartvisning er delegat til nili ditt syn kontrolleren dealloc.