Nil与返回类型'MKOverlayRenderer'不兼容

Gan*_*mar 6 mapkit ios swift swift2

我收到了这个错误

"Nil与返回类型'MKOverlayRenderer'不兼容".

这是我的代码:

func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
    if overlay is MKCircle {
      let circleRenderer = MKCircleRenderer(overlay: overlay)
      circleRenderer.lineWidth = 1.0
      circleRenderer.strokeColor = UIColor.purpleColor()
      circleRenderer.fillColor = UIColor.purpleColor().colorWithAlphaComponent(0.4)
      return circleRenderer
    }
      return nil
  }
Run Code Online (Sandbox Code Playgroud)

它为什么会发生?

shi*_*hik 14

返回MKPolylineRenderer()而不是返回nil.


gna*_*729 1

因为 nil 不是 MKOverlayRenderer。如果您期望函数可能返回 nil,那么返回类型应该是可选的。根据定义,该函数只能返回实际的 MKOverlayRenderer。