NSPredicate 搜索 NSSet
Posted
技术标签:
【中文标题】NSPredicate 搜索 NSSet【英文标题】:NSPredicate searching NSSet 【发布时间】:2013-04-03 09:01:45 【问题描述】:我一直在环顾四周,看到了与我正在做的事情类似的例子,但无法让它们发挥作用。我有一个“产品”核心数据实体,它与“制造商”实体有一对多关系。 “制造商”有一个我要搜索的属性“名称”。 “产品”还有一个我希望搜索的“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】:试试这样的...
NSPredicate *namePredicate = [NSPredicate predicateWithFormat:@"ANY manufacturer.name CONTAINS[c] %@", searchString];
NSPredicate *customPredicate = [NSPredicate predicateWithFormat:@"isCustomItem == 0"];
NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubPredicates:@[namePredicate, customPredicate]];
然后使用 CompoundPredicate 过滤您的集合。
【讨论】:
感谢您的快速回复。这样做时我仍然收到此错误:'无法解析格式字符串“任何制造商.name CONTAINS [c] @%”' 应该是%@
,而不是@%
。
呸,不敢相信我也没听懂。已经解决了,谢谢你的帮助!以上是关于NSPredicate 搜索 NSSet的主要内容,如果未能解决你的问题,请参考以下文章