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选项所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)