【发布时间】:2011-04-29 22:45:11
【问题描述】:
我有两个实体事件和时间。事件实体与时间实体具有一对多的关系,因为每个事件都可以执行多次。现在我想在 tableView 中按时间顺序显示所有事件。所以我设置了一个 fetchedResultsController 来获取所有时间对象,根据开始时间对它们进行排序,并通过与事件对象的关系显示事件信息。到目前为止,一切都很好。但是现在如果用户在表格中选择一个条目,我会将一个事件对象传递给可以编辑事件的 detailViewController。
问题是现在只有事件实体被标记为已更新。我通过查看 NSManagedObjectDidChange 通知的 userInfo 目录发现了这一点。因此,FRC 上的委托方法不会被触发,因为没有时间对象被更改。
如何手动将时间对象标记为已更改,以使 FRC 识别更改并相应地更新单元格?我尝试触发 KVO 方法 willChangeValueForKey 和 didChangeValueForKey,但到目前为止还没有成功。
非常感谢 托马斯
【问题讨论】:
-
我现在尝试的是使用新的 userInfo 字典手动发布 NSManagedObjectContextObjectDidChangeNotifications,其中包含受事件对象更改影响的时间对象。不幸的是,FRC 没有反应。
-
目前我正在解决一个问题,我想根据关系中的属性值对视图进行排序,而我的以下解决方案还不够。祝你好运! FRC 总是让人头疼。
标签: core-data nsfetchedresultscontroller