如何快速获取 Core Data 中的关系

Posted

技术标签:

【中文标题】如何快速获取 Core Data 中的关系【英文标题】:How can I fetch a relationship in Core Data swift 【发布时间】:2017-04-25 21:35:23 【问题描述】:

这是我的核心数据模型:

我有两个实体:Folder <->> Note,我想获取文件夹中的所有笔记。

【问题讨论】:

【参考方案1】:

首先建议将 many 关系命名为复数形式 (notes),这样更容易理解模型。

如果您有 NSManagedObject 子类和对文件夹的引用,只需通过关系获取注释:

let notes = folder.notes

但是这会返回一个Set。如果你想要一个数组写

let notes = folder.notes.allObjects as! [Note]

您还可以使用谓词分配给Note 实体上的提取请求:

let name = "Foo"
let predicate = NSPredicate(format:"folder.name == %@", name)

【讨论】:

这是我在堆栈上发布的第一个问题,它建议我不要说谢谢,但 Thakssss!哈哈【参考方案2】:

在你的函数中写这行代码

let container = (UIApplication.shared.delegate as! AppDelegate).persistentContainer
        let context: NSManagedObjectContext = container.viewContext
        let request:NSFetchRequest<Notes> = Notes.fetchRequest()


  request.predicate = NSPredicate(format: "here write relationship name .folderName = %@" , searchbar.text!)
        
        do
        
            let result = try context.fetch(request)
            for notes in result 

....



【讨论】:

以上是关于如何快速获取 Core Data 中的关系的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Core Data 中的关系相关实体获取属性?

在 Core Data 中有效地获取一对多关系中的最新记录

如何使用 Core Data 关系?

根据 Swift Core Data 中的关系获取与特定实体相关的所有条目

Core Data 获取请求与 NSFetchedResultsController 的一对多关系

如何管理 Core Data 中的一对多关系?