错误:无法将类型NSKVONotifying_MKUserLocation的值强制转换为Park_View.AttractionAnnotation

Mar*_*aya 3 core-location mapkit mkannotation swift

使用此功能时:

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
    let annotationView = AttractionAnnotationView(annotation: annotation, reuseIdentifier: "Attraction")
    annotationView.canShowCallout = true
    return annotationView
}
Run Code Online (Sandbox Code Playgroud)

发生此错误:

无法将'NSKVONotifying_MKUserLocation'(0x7e8a62b0)类型的值转换为'Park_View.AttractionAnnotation'(0xf7948).

它运行良好,但当我尝试添加CoreLocation以查找我的代码的用户位置时,我开始出现此错误.

Mar*_*aya 16

我发现MKUserLocation也是一个注释.

这是我出来的解决方案,它解决了错误.

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
    if (annotation is MKUserLocation) {
        return nil
    }
    else {
        let annotationView = AttractionAnnotationView(annotation: annotation, reuseIdentifier: "Attraction")
        annotationView.canShowCallout = true
        return annotationView
    }
}
Run Code Online (Sandbox Code Playgroud)