【发布时间】:2014-12-01 21:28:10
【问题描述】:
我有一个名为 Image 的实体,它与一个名为 Tag. 的实体具有一对多关系。
假设我有一个标签实体数组 [tag1, tag2, tag3] 如何从数组中获取所有标签包含所有标签的图片?
【问题讨论】:
-
您是否尝试将谓词添加到您的 NSFetchRequest 中?
标签: ios objective-c xcode core-data swift
我有一个名为 Image 的实体,它与一个名为 Tag. 的实体具有一对多关系。
假设我有一个标签实体数组 [tag1, tag2, tag3] 如何从数组中获取所有标签包含所有标签的图片?
【问题讨论】:
标签: ios objective-c xcode core-data swift
有这些不同的情况:
-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)
【讨论】:
ANY 获取将获取列表中至少有一个标签的图像。我将代码更改为使用ALL。现在它将获取列表中标签为 all 的图像。还是您想要具有完全相同标签列表的图像?