Esto se debe a la forma en que funciona MKMapView
. Hay una operación pendiente, por lo que MapKit retiene el MKMapView
y aún no ha sido desasignado. Eso no es un problema en sí mismo. El problema es que todavía está enviando mensajes a su delegado.
La solución alternativa es simple: como parte de la limpieza de su controlador de vista configure el delegado de la vista de mapa en nil
, lo que evitará que MKMapView
le envíe mensajes.
Esto está documentado en MKMapViewDelegate Protocol Reference:
Antes de lanzar un objeto MKMapView para el que ha establecido un delegado, recuerde que debe establecer la propiedad de ese objeto delegado a cero. Un lugar donde puede hacer esto es en el método dealloc donde se deshace de la vista del mapa.
Editar: Dar Oscar un voto arriba, justo debajo, quien proporcionó la cita de documentación aquí.
Dado ARC, sugiero que esto signifique que debe configurar el delegado de su vista de mapa en nil
en el controlador de vista dealloc
.
+1 por ahorrar mi tiempo. – EmptyStack