Esto es debido a la forma en que MKMapViewfunciona. Hay una operación pendiente, por lo MapKit está reteniendo el MKMapViewy que en realidad no se ha desasignado todavía. Eso no es un problema en sí. El problema es que todavía está enviando mensajes a su delegado.
La solución es simple: Como parte de la limpieza de su controlador de vista establece el delegado de la vista del mapa nil, lo que impedirá MKMapViewrecibir más mensajes a la misma.
Esto está documentado en MKMapViewDelegate Protocolo de Referencia :
Antes de liberar un objeto MKMapView para el que ha establecido un delegado, recuerde que debe establecer la propiedad de ese objeto delegado a cero. Un lugar que usted puede hacer esto es en el método dealloc donde se deshaga de la vista del mapa.
Editar: Dar un Oscar upvote así, justo por debajo, que proporcionó la documentación cita aquí.
Dada ARC, que sugiere esto significa que debe establecer el delegado de la vista de mapa para nilen su controlador de vista de dealloc.