MKAnnotation всегда красный пост обновления
У меня есть класс MapViewController, и я установил
mapView.delegate = self
в viewDidLoad. Когда я впервые загружаю карту, аннотации отображаются правильно. Однако после обновления (например, после того, как я нажал кнопку в выноске - скажем, "удалить"), все остальные контакты теряют свои изображения и отображаются "красным".
В моем методе обновления я удаляю все аннотации:
mapView.removeAnnotations(mapView.annotations)
а затем воссоздать аннотации таким же образом, как я их создал при начальной загрузке.
Этот код работал нормально до сегодняшнего дня, когда я обновился до Swift 2.0. До сих пор мне просто везло или я пропустил новый кусок кода?
Я даже пытался заставить штифт установить значение по умолчанию в зеленый. Но независимо от того, что я делаю (установите изображение или измените цвет), после обновления все контакты будут красными:(
1 ответ
Нашел ошибку в:
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
В какой-то момент в течение дня я как-то изменил случай, когда:
mapView.dequeueReusableAnnotationViewWithIdentifier(identifier)
не вернул ноль и установил аннотацию в MKPinAnnotationView. После обновления я удалил тот же объект. Однажды оказал это по умолчанию Красному.
Решение состояло в том, чтобы обрабатывать только объекты 'MKAnnotationView' (будь то мой собственный подкласс или по умолчанию).