2009-08-01 6 views
0

特定のプロパティに応じて同じプールを形成するオブジェクトのリストを表示する必要がある複数のTableViewDatasourcesがあります。 など。複数のデータソースで使用するために単一配列または辞書を設定するにはどうすればよいですか?

object.flag1 is set- it will show up in TableView1 
object.flag2 is set- it will show up in TableView2 

明白な方法は、各テーブルビューのための別々のアレイを有することが、同じ物体を異なる配列に表示されることであろう。また、私は非常に頻繁にオブジェクトを更新するか、同じ配列を通してすべてのオブジェクトにアクセスする必要があります。

1つの辞書または配列を設定して、すべてのオブジェクトを1つの構造にするにはどうすればよいですか?別の方法でそれを置くために


: テーブルビューまたは選択の変更を、アプリケーションが新しいデータでTableViewsを再描画する必要があります。アプリケーションは、オブジェクトのプールにアクセスし、イテレータを使用してオブジェクトを検索し、各オブジェクトとそのプロパティにアクセスする必要があります。

これは高価な操作であり、それを避けたいと思います。おそらく、オブジェクトのグローバルプールを辞書にし、オブジェクトのプロパティを辞書フィールドとして公開することによって、おそらく多分。

オブジェクトのグローバルプールを反復する代わりに、特定の基準に一致するフィールドを持つオブジェクトを選択することによって、グローバルプールのDicitonaryにデータベースの方法でアクセスできます。

誰かがこれを行う例を知っていますか?

+0

表示されるデータの量を知ることは役に立ちますか? – bbum

+0

約100のオブジェクトです。 私が心配しているのは、異なるテーブルごとに、すべてのオブジェクトを繰り返し処理し、そのプロパティにアクセスして別々の配列にソートする必要があるということです。 – Rod

答えて

0

これは時期尚早の最適化のようです。何百ものアイテムを管理している場合や、再描画をひどく頻繁に行う場合を除いて、100個のオブジェクトを繰り返し、2つのアレイを維持しても、メモリやCPUのオーバーヘッドが問題になることはありません。

簡単な方法で実装してから、実際にパフォーマンスの問題があるかどうかを判断してください。

0

データソースとして機能するプロキシコレクションを作成する傾向があります。これらのプロキシは、コンテンツを準備するときにプールから適切なオブジェクトを収集します。プールとサブセットの規模を知らなければ、それを最適化することは時期尚早です。

関連する問題