gpt4 book ai didi

Swift 2 MKMapViewDelegate rendererForOverlay 可选性

转载 作者:搜寻专家 更新时间:2023-10-30 21:59:33 25 4
gpt4 key购买 nike

在 Swift 1.2 中我有这个:

class UVC: NSViewController, MKMapViewDelegate {
// ...

// **************************************
// MARK: MapView Delegate
// **************************************
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer! {
if overlay is OSGBTiles {
return OSGBTilesRenderer(tileOverlay: overlay as! OSGBTiles)
} else if overlay is ESRI {
return ESRIRenderer(shapeFileOverlay: overlay as! ESRI)
} else if overlay is MKTileOverlay {
return MKTileOverlayRenderer(overlay: overlay)
} else {
print("Unknown overlay")
}
return nil
}
}

Swift 2 已将 mapView:rendererForOverlay 的定义更改为现在返回 MKOverlayRenderer 而不是 MKOverlayRenderer!,并且现在不允许我返回返回 nil(毫不奇怪)因为 MKOverlayRenderer 不是 NilLiteralConvertible。但是,文档(在 Xcode 7 中)仍然说:

Return Value

The renderer to use when presenting the specified overlay on the map. If you return nil, no content is drawn for the specified overlay object.

如果传递了一个我不认识的叠加层,我应该返回什么?

最佳答案

根据最新的MKMapView.h,现在新的函数声明是:

// Current renderer for overlay; returns nil if the overlay is not shown.
@available(iOS 7.0, *)
func rendererForOverlay(overlay: MKOverlay) -> MKOverlayRenderer?

关于Swift 2 MKMapViewDelegate rendererForOverlay 可选性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30750560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com