4

オーバーレイをマップ ビューに追加すると、次の警告が表示されます。

Sending 'MKOverlayView *const __strong' to parameter of incompatible type 'id<MKOverlay>'

コードはうまく機能し、オーバーレイは必要に応じて描画されますが、警告を取り除きたいです。それを引き起こしているコード:

for(MKOverlayView *overlay in [mapView overlays]) {
    [mapView removeOverlay:overlay];
}

(明らかに、for ループ内の行がこのエラーの原因です) Google には、そのエラーの単一の結果はありません。たとえば、 MKAnnotationView とのみ似ています。そこでの解決策(例):

for(id<MKOverlay> *overlay in [mapView overlays]) {
    [mapView removeOverlay:overlay];
}

エラーが発生します。

何か案は?ありがとう!

4

1 に答える 1

4

このプロパティは、オーバーレイビューではなく、オーバーレイモデルオブジェクト (プロトコルに準拠するオブジェクト)overlaysの配列を返します。MKOverlay

したがって、for ループを次のように変更します。

for(id<MKOverlay> overlay in [mapView overlays]) {

パーツにアスタリスクがないことに注意してくださいid<MKOverlay> overlay

于 2012-06-23T00:40:00.307 に答える