NSFetchedResultsController fetchRequest用于一对多关系

时间:2018-02-25 19:12:46

标签: swift macos core-data nsfetchedresultscontroller nsfetchrequest

我非常感谢使用NSFetchResultsController的一些帮助。 我认为我需要做的事情应该对某些人来说很简单,但我有点卡住了!

我将尝试解释我在做什么,或者简化版本。 我有2个viewControllers,每个都显示一个NSTableView。我正在使用Core Data和一个实体俱乐部。其中一个viewControllers显示一个俱乐部列表。所以对于这个,我创建了一个NSFetchResultsController,传递给fetchRequest,基本上是NSFetchRequest<Clubs>(entityName: “Clubs”)

每个俱乐部都有一份会员名单,并且有一对多的关系。我想使用第二个viewController显示成员。因此,当我在第一张桌子上点击一个俱乐部时,我希望第二张桌子显示其成员。

我有一个NSFetchResultsController连接到第二个表。我被困在什么fetchRequest发送给它。如果我使用与第一个类似的那个,即NSFetchRequest<Members>(entityName: “Members”),正如预期的那样,我最终得到一个表显示存储的所有俱乐部,第二个表显示存储的所有成员,而我只想要成员在第一张表中选择的俱乐部。我希望这是有道理的。所以我的问题是,我应该将fetchRequest发送到第二张表NSFetchResultsController

1 个答案:

答案 0 :(得分:0)

您应该将以下谓词添加到FRC底层的获取请求中:

fetchRequest.predicate = NSPredicate(format:"club == %@", theClubSelectedInTheFirstViewController)