我在CoreData中有2个实体(与此相关)。我们称他们为objectA
和objectB
。每个实体与另一个实体有多对多的关系。
我有一个视图,它使用NSFetchedResultsController
来显示表中所有objectB
个对象(记录)的列表。一切正常。
现在,我正在尝试做的是,给定任何一个 objectA
,提供一个表格,其中每个objectB
都有一个与第一部分中特定 objectA
的关系,以及第二部分中的其余部分。根据我的尝试,sectionNameKeyPath
中的NSFetchedResultsController
似乎不够灵活,无法允许这样的内容。
我错过了什么,或者还有其他方法可以做到这一点吗?
答案 0 :(得分:0)
不幸的是,NSFetchedResultsController
似乎不够灵活,所以我最终使用两个NSFetchedResultsController
来分别获取具有不同谓词的第一和第二部分。
答案 1 :(得分:0)
我想提出另一种解决方案,
在您的实体(例如sectionName或类似名称)中创建一个属性,具体取决于您的条件,例如'一二'。
现在,当您创建FRC时,使其可以基于'sectionName'(新条目)以递增方式创建节。
现在您可以根据情况分为两个部分。
这就是我的做法,
在我的核心数据实体子类中创建了一个计算属性,
var groupSectionName:String?{
return isPinned /**Or your condition*/ ? "One" : "Two"
}
在创建FRC时,
let frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: "groupSectionName",cacheName: nil)
现在,对于每个索引,FRC都会调用计算出的属性。