核心数据与AND的许多NSPredicate

Amy*_*all 3 cocoa core-data nspredicate

我正在尝试为find-as-type-type搜索栏编写查询.我想要做的是查询"Kind",并返回任何具有LocalName的种类('name'LIKE%@ AND localeIdentifier ==%@).

如果我只搜索名称(因此忽略localeIdentifier),我可以这样做:

ANY localized.name LIKE %@
Run Code Online (Sandbox Code Playgroud)

我想要的更像是什么

ANY localized.(name LIKE %@ AND localeIdentifier == %@)
Run Code Online (Sandbox Code Playgroud)

总而言之,搜索"Kind",多对多关系中的任何一个项目"本地化"应该与name和localeIdentifier都匹配.

有关正确语法的任何想法吗?

Bar*_*ark 9

你想要的是一个子查询.在谓词格式语法中:

SUBQUERY(self.localized, $x, $x.name LIKE %@ AND $x.localeIdentifier == %@).@count > 0
Run Code Online (Sandbox Code Playgroud)

其中SUBQUERY表达式返回集合self.localized中与第三个参数中的谓词匹配的实例集合.Kind此SUBQUERY表达式非空(即@count > 0)匹配您所需条件的实例.

SUBQUERY表达式是在OS X 10.5中引入的.