swift - 在核心数据中检索具有已过滤子级的父级

标签 swift core-data

我有一个核心数据对象如下:

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?
}

ParentChild 对象之间的关系类型是一对多。

我正在寻找 Parent 上的谓词,以便能够使用基于 Child 属性的过滤后的 Child 集来检索它。像这样的事情:

return NSPredicate(format: "Any child.name == %@", nameString)

我们可以使用任何类型的谓词来做到这一点吗?

最佳答案

我建议获取具有特定父 idChild 项目

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/

相关文章:

iphone - 核心数据关系 - 仅显示在特定实体中找到的那些值

ios - 覆盖 canOpenUrl(_ :) AppDelegate

ios - 如何将相机预览放入 UIImageView?

cocoa - (NSMergeConflict for NSManagedObject)由于 MOC 或数据模型的重复实例而导致错误

ios - 使用 NSArray/NSMutableArray 并仅保存在核心数据或 ChorData 中?

ios - 核心数据 - 无法在路径加载优化模型

ios - 在 API 中创建 if 条件时,如何修复 swift 代码中调用 Storyboard 的速度?

swift - 覆盖子类中的枚举情况

ios - 通过ObjectIdentifier访问对象(指针)

iphone - 如何从 NSDictionaries 的 NSArray 读取值