Кастинг MKPointAnnotation Fails
Я пытаюсь преобразовать переменную с именем аннотации типа MKPointAnnotation (и внутри функции mapview) к типу CustomPointAnnotation
, который является классом, который я создал, который простирается от MKPointAnnotation
,
Вот строка кода, которая делает это:
let ca = annotation as! CustomPointAnnotation
А вот реализация CustomPointAnnotation:
class CustomPointAnnotation: MKPointAnnotation {
var image = UIImage()
}
Но когда я делаю это, я получаю ошибку во время выполнения в первой строке, показанной здесь (пусть ca =....), которая говорит:
"Could not cast value of type 'NSKVONotifying_MKPointAnnotation' (0x7ff93d91fea0) to 'ParseStarterProject_Swift.CustomPointAnnotation' (0x1056c1f00)."
Буду очень признателен за вашу помощь, спасибо.
Изображение линии, на которой возникает ошибка: Изображение ошибки в консоли:
Это весь метод mapview, где происходит ошибка. Аннотация определяется как MKAnnotation с помощью функции.
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}
let identifier = "MyCustomAnnotation"
var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier)
if annotationView == nil {
annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
annotationView?.canShowCallout = true
annotationView!.image = UIImage(named: "RaceCarMan3.png")
} else {
annotationView!.annotation = annotation
}
let ca = annotation as! CustomPointAnnotation
configureDetailView(annotationView!, carImage: ca.imageName)
return annotationView
}
func configureDetailView(annotationView: MKAnnotationView, carImage: UIImage) {
annotationView.detailCalloutAccessoryView = UIImageView(image: carImage)
}