我正在尝试在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中对正确使用此功能的方法有所了解吗?
谢谢.