7

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返すように変更しました。ただし、ドキュメント (Xcode 7) にはまだ次のように記載されています。MKOverlayRendererMKOverlayRenderer!nilMKOverlayRendererNilLiteralConvertible

戻り値

指定されたオーバーレイを地図上に表示するときに使用するレンダラー。nil を返すと、指定されたオーバーレイ オブジェクトのコンテンツは描画されません。

認識できないオーバーレイが渡された場合、何を返す必要がありますか?

4

1 に答える 1