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) にはまだ次のように記載されています。MKOverlayRenderer
MKOverlayRenderer!
nil
MKOverlayRenderer
NilLiteralConvertible
戻り値
指定されたオーバーレイを地図上に表示するときに使用するレンダラー。nil を返すと、指定されたオーバーレイ オブジェクトのコンテンツは描画されません。
認識できないオーバーレイが渡された場合、何を返す必要がありますか?