MKMapView showsUserLocation Crash

Estoy configurando showsUserLocation = NO en un object MKMapView a través del método applicationDidEnterBackground del delegado de la aplicación. Esto es para evitar que actualice la location del usuario mientras está en segundo plano para ahorrar batería. Sin embargo, parece que estoy recibiendo un pequeño número de loggings de locking como este:

0 MapKit 0x3174c5f6 <networkingacted> + 9 1 MapKit 0x3174c5e9 -[MKQuadTrie contains:] + 24 2 MapKit 0x3176eaa7 -[MKAnnotationManager _removeAnnotation:updateVisible:removeFromContainer:] + 50 3 MapKit 0x3176ea6d -[MKAnnotationManager removeAnnotation:] + 28 4 MapKit 0x31782283 -[MKMapView stopUpdatingUserLocation] + 118 

¿Cuál es la mejor manera de detener las actualizaciones para la location del usuario inmediatamente antes de pasar al background sin que se caiga? Busqué una solución a este problema y no pude encontrar uno.

Algo que podrías intentar es envolver la llamada con:

 if (myMapView.userLocationVisible) { myMapView.showsUserLocation = NO; } 

Dado que el map parece pensar que la anotación ha sido eliminada. Sin embargo, no deshabilitará el seguimiento aún en ese caso. La otra opción sería simplemente no hacer esto para iOS 7 ya que creo que se ha resuelto en 8.x. Al less en el primero, podrías deshabilitar el seguimiento incluso cuando la anotación fue seleccionada para ti la mayor parte del time.

Solo por las cosas en la panetworking en este momento.

Una posible solución sería hacer lo siguiente:

 if ([annotation isKindOfClass:[MKUserLocation class]]) { ((MKUserLocation *)annotation).title = @"My Current Location"; return nil; //return nil to use default blue dot view }