转换自定义注释视图始终返回nil

时间:2018-05-18 22:19:04

标签: ios swift mapkit swift4

MKAnnotationView(annotation: annotation, reuseIdentifier: "customAnnotation")我正在自定义我的注释,主要是我在地图上更改注释的图像。以下代码在iOS 11上运行良好,但运行iOS 10或更低版本的设备不显示自定义的annoation图像。

当我在iOS 10上调用as? CustomAnnotationView时,它会返回一个注释视图,但当我将它(CustomAnnotationView)投射到if annotation is CustomAnnotation{ var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "customAnnotation") as? CustomAnnotationView if annotationView == nil{ annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "customAnnotation") as? CustomAnnotationView } guard annotationView != nil else{ return nil } annotationView!.passedAnnotation = annotation as! CustomAnnotation annotationView!.setUpAnnotation() return annotationView } 时,它返回nil。我签入Apple文档,iOS 3+应支持此代码。

IPprefix_by_netmask() {
    subnetcalc 1.1.1.1 "$1" -n  | sed -n '/^Netw/{s#.*/ #/#p;q}'
}

1 个答案:

答案 0 :(得分:0)

该行:

annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: "customAnnotation") as? CustomAnnotationView

始终为nil,因为您创建的是MKAnnotationView,而不是CustomAnnotationView

将行更改为:

annotationView = CustomAnnotationView(annotation: annotation, reuseIdentifier: "customAnnotation")