Swift 2 MKMapViewDelegate rendererForOverlay选项

Swift 2 MKMapViewDelegate rendererForOverlay选项,第1张

概述在 Swift 1.2中我有这个: class UVC: NSViewController, MKMapViewDelegate { // ... // ************************************** // MARK: MapView Delegate // ************************************** 在 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选项全部内容,希望文章能够帮你解决Swift 2 MKMapViewDelegate rendererForOverlay选项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1018423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存