0

一連の辞書データソースを含むテーブルビューがあります。ここで、このテーブル内でフィルターを実行したいのですが、名前、番号、電子メールなどの5つの異なるフィールドをフィルターできるようにしたいと思います。

どうすればいいですか?配列でそれを行う方法を見つけましたが、ディシオナリーでそれを行う方法がわかりません。

4

2 に答える 2

1

辞書の配列をフィルタリングする場合は、filteredArrayUsingPredicateを使用します。次のようになります。

NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF.name = %@",@"Fabio"];
NSArray *filtered = [myArray filteredArrayUsingPredicate:pred];

これにより、すべての辞書の名前の値がFabioになる配列が得られます。

編集後:より広範な検索を実行する場合は、次のように述語に「OR」を追加できます。

NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF.name = %@ OR SELF.email BEGINSWITH[c] %@",@"Fabio",@"fabio"];

これにより、名前がFabioであるか、電子メールがfabioで始まる辞書が表示されます(またはFabio、[c]パラメーターは大文字で一致するかどうかを意味します)。

于 2012-11-12T17:36:14.563 に答える
0

NSPredicateFilterクリックした列に基づいて使用します。

于 2012-11-12T17:35:56.633 に答える