Swift 中的 dequeueReusableAnnotationViewWithIdentifier

dequeueReusableAnnotationViewWithIdentifier in Swift

我有以下代码,用于尝试使注释视图出列,然后在它不存在时创建一个,但有一点重复,这看起来不像 "swift" 方式。关于如何改进这一点有什么建议吗?

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
    }
}

您的代码看起来不错。

一种缩短它的方法可能是

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

那么你也只需要一个 return 语句而不需要 if 子句。