Swift 2 でマップ上にポリラインを描画しようとしています。すべて正常に動作しますが、このコードに対してコンパイラの警告が表示されます。
func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
if overlay is MKPolyline {
let polylineRenderer = MKPolylineRenderer(overlay: overlay)
polylineRenderer.strokeColor = UIColor.redColor()
polylineRenderer.lineWidth = 5
return polylineRenderer
}
return nil
}
これにより、「 mapView (rendererForOverlay) の結果とパラメーターには、プロトコル MKMapViewDelegate が期待するものとは異なるオプションがあります」という警告が表示されます。
これで問題なくコンパイルできますが、コンパイラの警告が表示されるのが気になります。
最初の行を次のように変更すると
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
! を削除すると、警告は消えますが、戻り値を nil にすることはできず、コードはコンパイルされないというエラーが表示されます。
これは、同じ問題が述べられているが満足のいく答えが得られないこのスレッドのフォローアップでもあります: Swift 2 MKMapViewDelegate rendererForOverlay optionality
Swift 2 でこの関数を使用する正しい方法を誰かが明らかにすることはできますか?
ありがとう。