Ios 多个提取请求?

Ios 多个提取请求?,ios,swift,uitableview,core-data,Ios,Swift,Uitableview,Core Data,我目前有一个UITableView,其中有两个部分使用了NSFetchedResultsController。我正在努力找出如何在不同的部分显示不同的实体。我有一个文件夹对象,然后还有标记对象。我希望在每个部分中显示所有这些,即第1部分所有文件夹,第2部分所有标签 这种关系是这样的: 文件夹(一对多)->电影(多对多)->标签 我如何做到这一点?我需要两个单独的tableView,还是使用一个tableView处理两个不同的获取请求?请帮忙 编辑:获取并查看表格cellForRowAtcode

我目前有一个
UITableView
,其中有两个部分使用了
NSFetchedResultsController
。我正在努力找出如何在不同的部分显示不同的实体。我有一个
文件夹
对象,然后还有
标记
对象。我希望在每个部分中显示所有这些,即第1部分所有
文件夹
,第2部分所有
标签

这种关系是这样的:
文件夹(一对多)->电影(多对多)->标签

我如何做到这一点?我需要两个单独的
tableView
,还是使用一个
tableView
处理两个不同的获取请求?请帮忙

编辑:获取并查看表格
cellForRowAt
code

  private let appDelegate = UIApplication.shared.delegate as! AppDelegate
   private let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
   private var fetchedRC: NSFetchedResultsController<Folder>!

   override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    refresh()
   }

   private func refresh() {
    do {
        let request = Folder.fetchRequest() as NSFetchRequest<Folder>
        request.predicate = NSPredicate(format: "name CONTAINS[cd] %@", query)
        let sort = NSSortDescriptor(keyPath: \Folder.name, ascending: true)
        request.sortDescriptors = [sort]
        do {
            fetchedRC = NSFetchedResultsController(fetchRequest: request, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
            fetchedRC.delegate = self
            try fetchedRC.performFetch()
        } catch let error as NSError {
            print("Could not fetch. \(error), \(error.userInfo)")
        }
    }
   }

   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "folderCell", for: indexPath) as! FolderTableViewCell
    let folder = fetchedRC.object(at: indexPath)
    cell.update(with: folder)
    cell.layer.cornerRadius = 8
    cell.layer.masksToBounds = true
    return cell
   }
private让appDelegate=UIApplication.shared.delegate作为!AppDelegate
私有let上下文=(UIApplication.shared.delegate as!AppDelegate)。persistentContainer.viewContext
私有变量fetchedRC:NSFetchedResultsController!
覆盖函数视图将出现(uo动画:Bool){
超级。视图将显示(动画)
刷新()
}
私有函数刷新(){
做{
让request=Folder.fetchRequest()作为NSFetchRequest
request.predicate=NSPredicate(格式:“名称包含[cd]]@”,查询)
让sort=NSSortDescriptor(键路径:\Folder.name,升序:true)
request.sortDescriptors=[sort]
做{
fetchedRC=NSFetchedResultsController(fetchRequest:request,managedObjectContext:context,sectionNameKeyPath:nil,cacheName:nil)
fetchedRC.delegate=self
请尝试fetchedRC.performFetch()
}将let错误捕获为NSError{
打印(“无法获取.\(错误),\(错误.userInfo)”)
}
}
}
func tableView(tableView:UITableView,cellForRowAt indexath:indexPath)->UITableViewCell{
让cell=tableView.dequeueReusableCell(标识符为:“folderCell”,for:indexath)作为!FolderTableViewCell
let folder=fetchedRC.object(位于:indexPath)
cell.update(使用:文件夹)
cell.layer.cornerRadius=8
cell.layer.masksToBounds=true
返回单元
}

将2个FRC用于您的2个部分

一个由文件夹fetchrequest提供,另一个由标签提供,都在一个tableview中。tableview委托方法负责您想要访问的内容。这是很容易处理的方式。如果你有两个以上的部分,它只会变得更复杂。
这样,您的tableview代理就可以通过section==0或1知道要访问哪个FRC。

回购协议是开源的吗?@FaZeUnempl0yedd不,这只是一个项目。如果它在gitlab上是打开的,我可以看一看。@FaZeUnempl0yedd我希望我可以哈哈。您对这个问题有什么想法吗?请粘贴一些关于TableViews代理/数据源的代码