Acest lucru este din cauza modului în care MKMapViewlucrările. Există o operațiune în așteptare, deci MapKit prezintă păstrarea MKMapViewși nu a fost încă de fapt deallocated. Acest lucru nu este în sine o problemă. Problema este că este încă trimiterea de mesaje către delegatul.
Soluție este simplu: Ca parte a curățării controlerului de vedere este setat delegat vizualizarea hărții la nilcare va împiedica de MKMapViewla trimiterea mesajelor către acesta.
Acest lucru este documentat în MKMapViewDelegate Protocolul de referință :
Înainte de a elibera un obiect MKMapView pentru care ați stabilit un delegat, nu uitați să setați proprietatea delegat acel obiect la zero. Un loc pe care îl puteți face acest lucru este în metoda dealloc în cazul în care vă aruncați vizualizarea hărții.
Editare: Dă Oscar un upvote, precum și, chiar mai jos, care a furnizat documentația citat aici.
Având în vedere ARC, vă sugerez acest lucru înseamnă că ar trebui să setați delegatului vizualizare hartă a nilîn vedere controlerul lui dealloc.