核心数据中使用AND的to-many NSPredicate

3
我正在尝试为“查找即时搜索栏”编写查询。我想要查询“种类”,并返回任何具有('name' LIKE%@ AND localeIdentifier ==%@)的LocalName的种类。
如果我只搜索名称(忽略localeIdentifier),我可以这样做:
ANY localized.name LIKE %@

What I want is something more like

ANY localized.(name LIKE %@ AND localeIdentifier == %@)

总之,在搜索"Kind"时,与"localized"中的任何一项都应该匹配名称和localeIdentifier。
有关正确语法的任何想法?
1个回答

9
你需要的是一个子查询。在谓词格式语法中:subquery
SUBQUERY(self.localized, $x, $x.name LIKE %@ AND $x.localeIdentifier == %@).@count > 0

这里的 SUBQUERY 表达式返回了在 self.localized 集合中与第三个参数中的谓词匹配的实例集合。对于这种 SUBQUERY 表达式非空(即 @count > 0)的 Kind 实例符合您的期望条件。

SUBQUERY 表达式在 OS X 10.5 中被引入。


太棒了!正是我所需要的提示! - Sney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接