我正在尝试在 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
}
这会给我一个警告说' mapView(rendererForOverlay)中的结果和参数具有与协议 MKMapViewDelegate 预期的不同的可选性'
现在,这将编译得很好,但是编译器警告正在显示,这让我很烦恼。
如果我将第一行更改为
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
通过删除!,警告将消失,但我收到一个错误,即返回不能为 nil,代码将不再编译。
这也是该线程的后续行动,其中陈述了相同的问题但没有令人满意的答案: Swift 2 MKMapViewDelegate rendererForOverlay optionality
任何人都可以阐明现在在 Swift 2 中使用此功能的正确方法吗?
谢谢。