NSPredicate与Array一起使用多个对象

时间:2013-07-30 18:44:50

标签: objective-c search nspredicate predicatewithformat

我有一个正确使用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和AND ListData.departments.Name。

注意:对象可以包含一系列0-10个部门。不确定这是否会导致任何问题,但我想提供尽可能多的相关信息。

如何格式化NSPredicate predicateWithFormat:以搜索所有三个变量?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果departments是一个对象数组,那么您可以在谓词中使用ANY

 ... OR (ANY departments.Name CONTAINS[cd] %@)