如果相关对象发生更改,如何通知NSFetchedResultsController

时间:2015-09-29 02:47:28

标签: ios core-data nsfetchedresultscontroller

我有非常简单的结构关系

FeedItem - 根对象,它有对象帖子。

"FeedItem"
{
 "post" : 
      {"id" : 1, "name" : "Test"}
}

我将NSFetchedResultsController发送到FeedItem,但在一种情况下我在post对象中进行了更改。

我想知道,如果在更改相关对象时可以触发NSFetchedResultsController吗?

我通过

找到了解决方案
[[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(refreshData:)
                                                     name:NSManagedObjectContextObjectsDidChangeNotification
                                                   object:nil];

但在这种情况下,我需要手动检查通知中是否有我的对象,因为它包含所有要更新,添加,删除的对象。

1 个答案:

答案 0 :(得分:1)

FRC仅跟踪Feed项目中的更改,而不跟踪与其相关的项目。如果要触发更改,则需要进行更改,例如删除和重新添加关系,因此Feed项很脏并且将被保存。

您的通知是一种可接受的替代方案,它更清晰,并且意图明确。