MKMapView
を使用して小さなアプリケーションを作成しました。ここではMKAnnotations
が継続的にマップに追加されています。ユーザーがマップビューに触れない限り、うまくいきます。ユーザーインタラクションが新しい注釈ビューをブロックする
ユーザーが地図とやりとりしようとすると、新しいMKAnnotationViews
が地図に追加されていないことに気付きました。実際、ユーザーがマップとやりとりを続けている限り、mapView: didAddAnnotationViews:
は呼び出されませんでした。ユーザーの指が画面を離れるとすぐに、mapView: didAddAnnotationViews:
が呼び出され、追加されるはずのMKAnnotationViews
のすべての引数が渡されます。
私はmapView: didAddAnnotationViews
への呼び出しを強制しようとしたが、私は、引数としてMKAnnotationViews
を渡す必要があります(ので、私は定期的な通話に基づいて何かを使用することはできません)、と私はmapView: viewForAnnotation:
の終わりに、それを呼び出すようにしようとすると、それはdoesnのビューがまだマップビューに追加されていないので、作業していません。別のスレッドを介してアノテーションを追加しようとするのは悪い考えです。これはおそらくCollection was mutated while being enumerated
の例外になります(おそらく、アノテーションビューを格納する可変配列から来ているため)。
これを修正する方法はありますか?
ありがとうございますが、これは本当に私の質問に答えるものではありません。注釈はストリームから来ているので、配列にすべての注釈を格納することはできません。 –