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' (будь то мой собственный подкласс или по умолчанию).

Другие вопросы по тегам