如何使用获取结果控制器获取的对象列表添加其他对象?

How to add additional objects with fetch result controller fetched objects list?

我有一个名为“事件”的实体,它具有开始和结束日期属性。我必须通过在 UI 中按日期分组来显示事件列表。我正在使用 NSFetchedResultsController 来获取和列出事件。

让我们假设一个事件的开始日期是今天,结束日期是明天,在这里我需要在 UI 中的两个不同日期显示该事件,但我在数据库中只有一个条目。

我真的不想为一个事件创建多个条目,而且我希望使用获取结果控制器,因为它减少了很多手动计算。有什么办法可以解决这个问题吗?

NSFetchedResultsController 很好地将 NSManagedObjects 匹配到 tableView 的 indexPaths。但是,映射是一对一的,因此任何给定的事件在 indexPaths 中只能出现一次。为了实现你想要的,你需要创建一个新实体,比如 EventDate,具有从 EventEventDate 的对多关系。定义一个字符串属性,它反映日期是在事件的开始还是结束。然后将您的 FRC 基于 EventDate 实体。尽管每个 EventDate 只会出现一次,但多个 EventDate 可能与单个 Event 相关。从 EventDate 到 Event 的反向关系将使您能够从多个 EventDates 访问单个事件的详细信息。