Swift中的dequeueReusableAnnotationViewWithIdentifier

时间:2015-07-08 15:26:30

标签: ios swift refactoring

我有以下代码,用于尝试将注释视图出列,然后创建一个注释视图,如果它不存在但有一些重复,这看起来不像" swift&# 34;办法。关于如何改进的任何建议?

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
    let identifier = "annotation"

    if let annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as? MKPinAnnotationView {
        configureAnnotationView(annotationView)

        return annotationView
    } else {
        let annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
        configureAnnotationView(annotationView)

        return annotationView
    }
}

1 个答案:

答案 0 :(得分:4)

您的代码看起来很好。

缩短它的一种方法可能是

let annotationView = 
   mapView.dequeueReusableAnnotationViewWithIdentifier(identifier)  ??
   MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)

然后你也只需要一个return语句而不需要if子句。