我有一个名为Image的实体,它与名为Tag的实体有很多关系。
假设我有一个Tag实体数组[tag1,tag2,tag3] 如何获取所有标记包含阵列中所有标记的图像?
答案 0 :(得分:1)
有这些不同的案例:
-1。列表中任何标记的所有图像
NSPredicate(format:"ANY tags in %@", list)
-2。所有标签都在列表中的所有图像
NSPredicate(format:"SUBQUERY(tags, $tag, $tag IN %@).@count = %d",
list, countElements(list))
-3。所有图像中标签至少包含列表中的所有图像(但可能还有更多)
这最后一个问题有两种可能性。一个涉及子查询,但您也可以使用复合谓词。
var subPredicates = [NSPredicate]()
for tag in tagList {
subPredicates.append(NSPredicate(format:"ANY tags = %@", tag))
}
NSCompoundPredicate.andPredicateWithSubpredicates(subPredicates)