我有一个核心数据对象如下:
class Parent: PLManagedObject {
@NSManaged public var id: String?
@NSManaged public var child: NSSet?
}
class Child: PLManagedObject {
@NSManaged public var name: String?
@NSManaged public var parent: Parent?
}
Parent
和 Child
对象之间的关系类型是一对多。
我正在寻找 Parent
上的谓词,以便能够使用基于 Child
属性的过滤后的 Child
集来检索它。像这样的事情:
return NSPredicate(format: "Any child.name == %@", nameString)
我们可以使用任何类型的谓词来做到这一点吗?
最佳答案
我建议获取具有特定父 id
的 Child
项目
NSPredicate(format: "parent.id == %@ AND name == %@", parentID, nameString)
如果您想获取包含给定名称的子项的所有Parent
项,请获取Child
对象并映射
它们
fetchRequest.predicate = NSPredicate(format: "name == %@", nameString)
let children = context.fetch(fetchRequest)
let parentItems = children.map { $0.parent }
关于swift - 在核心数据中检索具有已过滤子级的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59964992/