【问题标题】:Core data: NSFetchedResultsController with objects are in a relationship核心数据:NSFetchedResultsController 与对象有关系
【发布时间】:2016-04-04 13:47:37
【问题描述】:

我有两个实体 CIDMPostCIDMUser。 CIDMPost 与名为 invitees 的 CIDMUser 具有 one-to-many 关系。 现在我有一个CIDMPost 的实例,比如说postObject,我可以通过写postObject.invitees 轻松获得受邀者,这将返回NSSet

现在我的要求是我希望那些被邀请者(postObject.invitees)作为NSFetchedResultsControllerGroup 的样式显示在UITableView 中。还需要满足以下条件。

  1. 按邀请状态(CIDMUser 的属性)分组
  2. 按邀请状态 ASC 排序

声明:

我尝试了几件事来满足我的要求,但崩溃了,原因是Invalid to many relationship。要知道这次崩溃的解决方案,我在一小时前发布了“a question”。但是在与Daij-Djan 进行几次交谈后,我开始知道我尝试的整个过程是错误的。

【问题讨论】:

    标签: swift core-data relationship nsfetchedresultscontroller


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢兄弟。我其实是在找这个。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多