核心数据谓词sectionNameKeyPath重新出现的多对多关系

时间:2011-09-21 15:11:50

标签: iphone core-data nsfetchedresultscontroller

我有一个看起来像这样的核心数据模型......

事件<< -------->>日期

这个想法是一个事件可以有很多日期和一个日期可以有很多事件。我需要我的tableview列出事件与SectionHeaders显示日期。

我的问题是我不知道如何设置它,以便每次在SectionHeader中显示新日期时都可以重新发生事件。

当我设置我的谓词以收集每个事件的所有日期时,它在FRC上设置sectionNameKeyPath时不允许重复事件。

2 个答案:

答案 0 :(得分:0)

而不是多对多的关系,只是拥有事件对象的日期属性并且查找特定日期的所有事件是不是有意义?我想这可以使用NSPredicate

一个小缺点是你必须为每个重复发生的事件都有一个条目,并在更改一个事件时修改所有这些条目。从好处来看,这在功能上是有益的,因为它允许用户修改系列中的单个事件,或取消/删除事件而不影响系列中的其余事件。

答案 1 :(得分:0)

吉姆,

NSFetchedResultsController仅限于一个实体。因此,许多复杂查询是不可能的,或者需要使用子查询进行复杂查询。根据我的经验,除非您的数据模型适合这种狭窄的设计,否则您将遇到麻烦。我退回去监听上下文,保存通知并处理更改或直接插入的对象。

安德鲁