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

时间:2019-04-15 09:22:48

标签: ios swift core-data nsfetchedresultscontroller nsmanagedobject

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

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

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

1 个答案:

答案 0 :(得分:0)

NSFetchedResultsController很好地将NSManagedObjects与tableView的indexPath进行了匹配。但是,映射是一对一的,因此任何给定事件只能在indexPaths中出现一次。要实现所需的功能,您需要创建一个新实体,例如EventDate,其实体之间的关系从EventEventDate。定义一个字符串属性,该属性反映日期是在事件的开始还是结束。然后将您的FRC基于EventDate实体。尽管每个EventDate仅会出现一次,但多个EventDate可能与一个Event有关。从EventDate到Event的逆关系可以使您从多个EventDate访问单个事件的详细信息。