我正在尝试为查找类型的搜索栏编写查询。我想要做的是查询“Kind”,并返回任何具有LocalName的种类('name'LIKE%@ AND localeIdentifier ==%@)。
如果我只搜索名称(忽略localeIdentifier),我可以这样做:
ANY localized.name LIKE %@
我想要的更像是
ANY localized.(name LIKE %@ AND localeIdentifier == %@)
总而言之,搜索“Kind”,多对多关系中的任何一个项目“本地化”应该与name和localeIdentifier都匹配。
有关正确语法的任何想法吗?
答案 0 :(得分:9)
你想要的是subquery。在谓词格式语法中:
SUBQUERY(self.localized, $x, $x.name LIKE %@ AND $x.localeIdentifier == %@).@count > 0
其中SUBQUERY
表达式返回self.localized
集合中与第三个参数中的谓词匹配的实例集合。此SUBQUERY表达式非空(即Kind
)的@count > 0
个实例符合您所需的条件。
SUBQUERY表达式是在OS X 10.5中引入的。