获取核心数据中的一对多关系并将其放入tableview中

问题描述 投票:-2回答:1

如何获取核心数据中的一对多关系并将其放入表格视图中?

我将此作为用户的数据模型

User CoreData Data Model

这是我的Task数据模型

Task CoreData Data Model

如何获取特定用户的任务并将其放入tableView

我尝试使用user.tasks,但是返回了NSSet,我无法使用它来为表视图创建数据集。

我应该使用谓词代替吗?这就是我所拥有的

    func handleCoreDataTask(){
    let request: NSFetchRequest<Task> = Task.fetchRequest()
    let dateSorter = NSSortDescriptor(key: "dueDate", ascending: false)
    request.sortDescriptors = [dateSorter]
    //request.predicate = 
    taskResultController = NSFetchedResultsController(fetchRequest: request,
                                                   managedObjectContext: coreDataStack.manageContext,
                                                   sectionNameKeyPath: nil,
                                                   cacheName: nil)
    taskResultController.delegate = self
    do{
        try taskResultController.performFetch()
    }
    catch{
        print("Perform Fetch error: \(error)")
    }
}
swift core-data one-to-many
1个回答
0
投票

将相反关系应用于User中的Task并添加适当的谓词

let username = "Foo"
let request: NSFetchRequest<Task> = Task.fetchRequest()
request.predicate = NSPredicate(format: "user.name == %@", username)
let dateSorter = NSSortDescriptor(key: "dueDate", ascending: false)
request.sortDescriptors = [dateSorter]

不鼓励创建新结果控制器的方法。懒惰地创建结果控制器(一次)并动态更改谓词和排序描述符。

© www.soinside.com 2019 - 2024. All rights reserved.