如何将Coredata属性添加为用于FRC SectionNameKeypath值的coredata属性



我最近被告知,每个tableview您应该只有一个fetchresultscontroller。我的表观视图有2个部分,我需要以某种方式使用sectionNamekeypath属性来告诉每个实体,它们应该在哪个表视图中。

我试图做的事情加起来了我实体的一个属性之一的价值,如果它的积极位置在第0节中,如果它在第1节中为负的位置。

在我有2个提取请求和2个FRC之前,其中一个看起来像这样

let fetchRequest: NSFetchRequest<Person> = Person.fetchRequest()
    fetchRequest.predicate = NSPredicate(format:"statement.@sum.amountOwed >= 0")
    let sort = NSSortDescriptor(key: #keyPath(Person.name), ascending: true)
    fetchRequest.sortDescriptors = [sort]
    positiveFetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: coreDataStack.managedContext, sectionNameKeyPath: nil, cacheName: nil)

    do{
     try positiveFetchedResultsController.performFetch()
     }catch let error as NSError{
        print("Fetching error: (error), (error.userInfo)")
    }

是否可以使用谓词的结果来说明该部分应驻留在使用sectionNameKeypath值的部分?

我认为您可以使用一个fetchresultscontroller。

let fetchRequest: NSFetchRequest<Person> = Person.fetchRequest()
let sortDescriptor1 = NSSortDescriptor(key: "section.no", ascending: true)
let sortDescriptor2 = NSSortDescriptor(key: "person.no", ascending: false)
fetchRequest.sortDescriptors = [sortDescriptor1, sortDescriptor2]
let aRowResults = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: "section.no", cacheName: nil)

在您的表观视图中,IndexPath。节将与该部分的编号相对应。

最新更新