私のアプリでは、多くの目印を描画し、それらの場所を継続的に更新する (または古くなった場合は削除する) 必要があります。現在、いくつかのカスケード ループとシーケンシャル ループを使用していますが、これが最も効率的な方法ではないのではないかと心配しています。これが私が今までこの仕事をする方法です:
- 描画する目印ごとに、最初に MapKit 注釈配列 (作成日と一意の識別子を追加したカスタム MKPlacemark によって作成) で、描画する目印の一意の ID を検索します。目印が見つかった場合はその場所のみを更新し、そうでない場合は地図に新しい注釈を追加します。
- MapKit 注釈配列内の各目印について、現在から作成日までの経過時間が 10 秒を超えているかどうかを確認し、10 秒を超えている場合は、その注釈を地図から削除します。
この 2 つのループを 2 秒ごとに繰り返します。
問題は、20 個以上の目印を管理すると、ループに時間がかかりすぎて、更新と削除のプロセスが期待どおりに機能しないことです。
アノテーション配列を操作する最速の方法はどれですか? 各注釈を削除してすべて再描画する方が速いですか?