私はウェブを少し検索して、私がやりたいことを行う方法についていくつかのアイデアを見つけましたが、それでもあなたが私が何をすべきだと思うか知りたいです。
コンテキストは次のとおりです。
私はiOS5用のアプリを開発しています。MapKitを使用して地図を表示し、それに約5000個の注釈を追加します-うん、それはたくさんのようですが、心配しないでください、私はクラスタリングライブラリを使用しています:)。ユーザーがマップを開くたびにそれらをロードしないようにするために、appDelegateでそれらを作成します(注釈の配列を作成し[_mapView addAnnotations:[appDelegate.annotationsToAdd allObjects]];
、マップを開くときに呼び出します)。配列の作成には約10秒かかるannotationsToAdd
ので、このソリューションはかなりうまく機能していると思います(マップを開くことが許可されるまで、この10秒間待つ必要がありますが、アプリの起動時に1回だけ待ちます) 。これらの注釈のそれぞれに、値の配列(15個の浮動小数点数)を含むオブジェクトへの「リンク」があります。今のところ、アノテーションを作成すると、subtitle
メソッドはそれらの値の1つを返します。
マップのViewControllerには、2つのセグメント化されたコントロールがあります。最初のセグメントには3つのセグメントがあり、2番目のセグメントには5つのセグメントがあり、15の組み合わせがあります。これも、アノテーション内のオブジェクトの配列にある値と同じ数です:)。
ですから、私の問題が発生するのを見たことがあるかもしれませんが、マップ上のすべての注釈のサブタイトルを更新したいと思います(クラスターは、保持しているピンに基づいて平均値を提供するため、クラスター内の注釈も更新します)。また、注釈のサブタイトルの値に基づいて、annotationViewの色/画像を更新したいと思います。
私は間違っているかもしれませんが、私の調査によれば、それを行うには、すべての注釈を削除し、それらをすべて再作成する必要があることを理解しています。私の場合、これはオプションではないことを理解しています。コントロールの1つの値を変更するたびに、ユーザーを10秒待たせることはできません。
KVOに関する記事を見ました:それは実用的な解決策でしょうか?
NSNotificationについてはよくわかりませんが、使用する必要がありますか?
私は本当にあなたの助けに感謝します、そして私は私に私の明らかに珍しい状況で従うべきステップを私に示す詳細な答えをさらに感謝します。
前もって感謝します。