NSPredicate搜索NSSet

时间:2013-04-03 09:01:45

标签: objective-c regex full-text-search nspredicate

我一直在环顾四周,看过类似于我正在做的例子但却无法让他们工作。我有一个"产品"具有多对多关系的核心数据实体与"制造商"实体。 "制造商"有一个属性"名称"我想要搜索。 "产品"也有" isCustomItem"我也想搜索一下。所以我试图达到的目标如下:

Product 1 ... m Manufacturer.name AND Product.isCustomItem == 0

到目前为止,我已经成功地聚集在一起:

NSPredicate *p3 = [NSPredicate predicateWithFormat:@"SUBQUERY(manufacturer,$m,$m.name CONTAINS[c] %@) AND (isCustomItem == 0)", searchString];

但是我一直收到错误:

**'Unable to parse the format string "SUBQUERY(manufacturer,$m,$m.name CONTAINS[c] %@) AND (isCustomItem == 0)"'**

1 个答案:

答案 0 :(得分:4)

尝试这样的事情......

NSPredicate *namePredicate = [NSPredicate predicateWithFormat:@"ANY manufacturer.name CONTAINS[c] %@", searchString];
NSPredicate *customPredicate = [NSPredicate predicateWithFormat:@"isCustomItem == 0"];

NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubPredicates:@[namePredicate, customPredicate]];

然后使用compoundPredicate过滤你的设置。