developer apple ios swift mapkit swift2

apple - swift ios documentation



Nil es incompatible con el tipo de retorno ''MKOverlayRenderer'' (4)

Porque nil no es un MKOverlayRenderer. Si espera que una función devuelva nulo, el tipo de devolución debería ser opcional. Como se define, la función solo puede devolver MKOverlayRenderer real.

Estoy recibiendo este error

"Nil es incompatible con el tipo de retorno ''MKOverlayRenderer''" .

Aquí está mi código:

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 }

¿Por qué está ocurriendo?


devuelve MKPolylineRenderer () en lugar de devolver nil.


No se supone que devuelva nil para esta función de delegado. La vista del mapa está esperando un procesamiento para cada una de las superposiciones. En tu caso, deberías hacer esto:

func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer { assert(overlay is MKCircle, "overlay must be circle") let circleRenderer = MKCircleRenderer(overlay: overlay) circleRenderer.lineWidth = 1.0 circleRenderer.strokeColor = UIColor.purpleColor() circleRenderer.fillColor = UIColor.purpleColor().colorWithAlphaComponent(0.4) return circleRenderer }

No creo que deba devolver MKPolylineRenderer() porque puede ocultar su error.