一連の辞書データソースを含むテーブルビューがあります。ここで、このテーブル内でフィルターを実行したいのですが、名前、番号、電子メールなどの5つの異なるフィールドをフィルターできるようにしたいと思います。
どうすればいいですか?配列でそれを行う方法を見つけましたが、ディシオナリーでそれを行う方法がわかりません。
一連の辞書データソースを含むテーブルビューがあります。ここで、このテーブル内でフィルターを実行したいのですが、名前、番号、電子メールなどの5つの異なるフィールドをフィルターできるようにしたいと思います。
どうすればいいですか?配列でそれを行う方法を見つけましたが、ディシオナリーでそれを行う方法がわかりません。
辞書の配列をフィルタリングする場合は、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]パラメーターは大文字で一致するかどうかを意味します)。
NSPredicateFilter
クリックした列に基づいて使用します。