0

データ項目を含むNSArrayへの参照が提供されます。テーブルビューのデータソースとして機能するカスタムビューコントローラーでは、各アイテムを解釈してセルとして表示します。ここまでは順調ですね。

今、私の同僚から、アイテムのプロパティの1つの値に基づくフィルターを実装するという要件があります。このプロパティには値が列挙されています(そのうちの4つ)。したがって、フィルターを適用すると、特定の値に一致するアイテムのみが表示されます。私の質問は、そのデータのこのフィルタリングにどのようにアプローチすべきかということです。

1)元のデータソースを指すように_dataプライベート変数を設定してから、フィルタリングを考慮に入れるために「data」プロパティゲッターをオーバーライドする必要がありますか?

2)コントローラー内に個別のfilteredData配列を生成する必要がありますか?3)他のアプローチ?

注>coredata+fetchedresultscontr。問題外です。アイテムの数が150〜200を超えることはありません。

4

2 に答える 2

1

私は2番目の選択肢を選びます。filteredDatasourceがある方が便利です。このようにして、表示するセルだけでなく、セルの数なども知ることができます。さらに、将来、セルを並べ替えてセクションを使用する場合は、はるかに柔軟になります。

たとえば– tableView:numberOfRowsInSection:、フィルタリングされたデータソースを使用して内部で何度も呼び出されるメソッドを実装する場合、どのオブジェクトがフィルタを通過するかを確認するために、配列のオブジェクトを何度もトラバースする必要はありません。戻るだけ[filteredDatasource count]です。これはより効率的です。

于 2012-12-06T15:26:14.540 に答える
1

私が取り組んでいるアプリには、すべてのアイテムの配列と、データソースが参照しているコピーがあります。フィルタが適用されると、コピーが置き換えられますが、元の配列に基づいています。だから私は#2を推測します。

于 2012-12-06T15:24:47.493 に答える