1

NSPredicate を正しく使用して配列をフィルター処理し、結果のフィルター処理された配列をユーザーに表示するアプリがあります。

これが私のNSPredicateコードです:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(Name CONTAINS[cd] %@) OR (Acronym CONTAINS[cd] %@) OR (departments.Name CONTAINS[cd] %@)",searchBar.text,searchBar.text,searchBar.text];

問題は、ユーザーがプロパティで検索しようとしたときに発生しdepartments.Nameます。問題は、配列 (ListData) を検索する方法にあると思います。配列がフォーマットされる方法は次のとおりです。

ListData 配列には、名前、頭字語、および部門 (さらにキーが名前のオブジェクトがあります) を持つ複数のオブジェクトが保持されます。NSPredicate を使用して、ListData.Name、ListData.Acronym、および ListData.departments.Name を検索したいと考えています。

注:オブジェクトに含めることができる部門の範囲は 0 ~ 10 です。これが問題を引き起こすかどうかはわかりませんが、できるだけ多くの関連情報を提供したいと思います。

NSPredicate predicateWithFormat:3 つの変数すべてを検索するには、 をどのようにフォーマットしますか?

ありがとう!

4

1 に答える 1

2

departmentsがオブジェクトの配列である場合ANY、述語で使用できます。

 ... OR (ANY departments.Name CONTAINS[cd] %@)
于 2013-07-30T19:07:59.777 に答える