Ios 既然我';我在使用Swift 2.0?
因此,当我使用Swift 1.2时,该函数运行良好,为我提供了所需的功能Ios 既然我';我在使用Swift 2.0?,ios,mkmapview,swift2,xcode7,mkoverlay,Ios,Mkmapview,Swift2,Xcode7,Mkoverlay,因此,当我使用Swift 1.2时,该函数运行良好,为我提供了所需的功能 func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer { if overlay is MKPolyline { let pr = MKPolylineRenderer(overlay: overlay) pr.strokeColor = self
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
if overlay is MKPolyline {
let pr = MKPolylineRenderer(overlay: overlay)
pr.strokeColor = self.lightBlue
pr.lineWidth = 14
return pr
}
//I get the error here, because I need to return something
}
现在,我得到一个错误,说“在一个预期返回'mkoverlayrender'的函数中缺少返回”
这种方法仍然是这样使用的吗?我能做些什么来补救这个问题
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer
将仅为添加到MKMapView实例的每个覆盖调用
如果仅将MKPolyline
添加到地图视图,则可以确保调用此委托函数时,overlay
参数的类型为MKPolyline
。由于是这种情况,因此没有理由检查覆盖参数是否是MKPolyline
的实例,如果覆盖是MKPolyline。您可以这样做:
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
let pr = MKPolylineRenderer(overlay: overlay)
pr.strokeColor = self.lightBlue
pr.lineWidth = 14
return pr
}
如果向MKMapView添加不同类型的覆盖,可以执行以下操作:
if overlay is MKPolyline {
// return renderer for MKPolyline overlay
return mkPolylineRenderer
} else {
// handle the different type of overlay...
return otherTypeOfOverlayRenderer
}
Swift编译器足够智能,可以从if/else块推断出总是会返回某些内容
将仅为添加到MKMapView实例的每个覆盖调用
如果仅将MKPolyline
添加到地图视图,则可以确保调用此委托函数时,overlay
参数的类型为MKPolyline
。由于是这种情况,因此没有理由检查覆盖参数是否是MKPolyline
的实例,如果覆盖是MKPolyline。您可以这样做:
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
let pr = MKPolylineRenderer(overlay: overlay)
pr.strokeColor = self.lightBlue
pr.lineWidth = 14
return pr
}
如果向MKMapView添加不同类型的覆盖,可以执行以下操作:
if overlay is MKPolyline {
// return renderer for MKPolyline overlay
return mkPolylineRenderer
} else {
// handle the different type of overlay...
return otherTypeOfOverlayRenderer
}
Swift编译器足够智能,可以从if/else块推断出总是会返回某些内容。这很有效,非常详细,非常感谢。这很有效,非常详细,非常感谢。