如何获取核心数据中的一对多关系并将其放入表视图?
我将此作为用户的数据模型
这是我用于Task的数据模型
如何获取特定用户的任务并将其放入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)")
}
}
答案 0 :(得分: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]
不鼓励创建新结果控制器的方法。惰性创建一次结果控制器,并动态更改谓词和排序描述符。