小编Chr*_*elt的帖子

Swift 2 MKMapViewDelegate rendererForOverlay编译器警告

我正在尝试在Swift 2中的地图上绘制折线.这一切都运行良好,但我得到了此代码的编译器警告:

func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {

    if overlay is MKPolyline {

        let polylineRenderer = MKPolylineRenderer(overlay: overlay)

        polylineRenderer.strokeColor = UIColor.redColor()

        polylineRenderer.lineWidth = 5

        return polylineRenderer
    }

    return nil

}
Run Code Online (Sandbox Code Playgroud)

这会给我一个警告说," 结果,并在图形页面(rendererForOverlay)参数有不同的可选性比协议MKMapViewDelegate预期 "

现在,这将编译正常,但它告诉我编译器警告显示.

如果我将第一行更改为

func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
Run Code Online (Sandbox Code Playgroud)

通过删除!,警告将消失,但我得到一个错误,返回不能为零,代码将不再编译.

这也是这个线程的后续,其中陈述了同样的问题,但没有令人满意的答案: Swift 2 MKMapViewDelegate rendererForOverlay optionality

任何人都可以在Swift 2中对正确使用此功能的方法有所了解吗?

谢谢.

mkmapview mkoverlay mkmapviewdelegate swift swift2

6
推荐指数
2
解决办法
4082
查看次数

标签 统计

mkmapview ×1

mkmapviewdelegate ×1

mkoverlay ×1

swift ×1

swift2 ×1