使用搜索栏搜索Core Data中的NSSet属性

时间:2011-10-14 10:07:58

标签: ios search core-data uisearchbar nspredicate

我有一个CoreData模型,其对象为“bar”,它与实体“drink”有多对多的“饮料”关系。

实体饮料只有一个名为“名称”的属性。

现在在我的应用程序中,我有一个tableView,显示所有栏并包含一个searchBar。

在此搜索栏中,我希望能够搜索条形码中可用的名称位置和可能的饮品

我已经实现了这样的名称和位置:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"
                                       name contains[cd] %@ OR
                       location.name_extern contains[cd] %@ OR 
                       location.name_intern contains[cd] %@", 
                            searchText, searchText, searchText];

所以现在我的问题是:如何在饮料的NSSet中搜索name属性?

编辑:

为了更清楚,以下是重要的数据模型:

Bar

Attributes: 
name
location
drinks

Location

Attributes:
name_extern
name_intern

Drink:

Attributes:
name

我有一个searchText,需要检查以下4个地方是否匹配:

  1. 名称(栏)
  2. name_extern(酒吧位置)
  3. name_intern(酒吧位置)
  4. 名称(酒吧的所有饮品)

1 个答案:

答案 0 :(得分:4)

这样的事情应该有效:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"
                                       name contains[cd] %@ OR
                       location.name_extern contains[cd] %@ OR 
                       location.name_intern contains[cd] %@ OR
                   ANY location.drinks.name contains[cd] %@", 
                            searchText, searchText, searchText, searchText];