核心数据:NSFetchedResultsController 与对象有关系

Core data: NSFetchedResultsController with objects are in a relationship

我有两个实体 CIDMPostCIDMUser。 CIDMPost 与名为 invitees 的 CIDMUser 有 one-to-many 关系。 现在我有一个 CIDMPost 的实例让我们说 postObject 从那里我可以通过写 postObject.invitees 轻松获得被邀请者,这将 return NSSet.

现在我的要求是 NSFetchedResultsController 的受邀者 (postObject.invitees) 以 Group 的风格出现在 UITableView 中。还需要满足以下条件。

  1. 按 invitationStatus(CIDMUser 的属性)分组
  2. 通过邀请状态 ASC 订购

Declaration:

我尝试了一些方法来满足我的要求,但崩溃了,原因是 Invalid to many relationship。要知道我发布的这个崩溃的解决方案'a question' an hour ago. But after few conversation with Daij-Djan 我已经知道我尝试的整个过程是错误的。

只需在您的获取结果控制器中获取用户,并通过带有谓词的邀请将排序描述符应用到所需的过滤器中。在创建抓取结果控制器时使用状态字段作为 sectionNameKeyPath 参数。

NSPredicate(format: "%@ in invitations", post)

其中 post 是要向其显示被邀请者的 post 对象,invitations 是与 post 的反向对多关系邀请用户。

(请注意,我假设一个用户可以被邀请到多个 post,这似乎合乎逻辑。在您的问题陈述中,您提到了一对多关系,它因此在我看来应该是多对多)。