首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 2 MKMapViewDelegate rendererForOverlay选项

Swift 2 MKMapViewDelegate rendererForOverlay选项
EN

Stack Overflow用户
提问于 2015-06-10 08:04:14
回答 1查看 2.7K关注 0票数 7

在Swift 1.2中,我有以下内容:

代码语言:javascript
复制
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中)仍然说:

返回值 在地图上显示指定覆盖层时要使用的渲染器。如果返回“零”,则不会为指定的覆盖对象绘制任何内容。

如果通过一个我不认识的覆盖层,我应该返回什么?

EN

回答 1

Stack Overflow用户

发布于 2015-06-27 06:57:42

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

代码语言:javascript
复制
// Current renderer for overlay; returns nil if the overlay is not shown.
@available(iOS 7.0, *)
func rendererForOverlay(overlay: MKOverlay) -> MKOverlayRenderer?
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30750560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档