如果相关对象更改,如何通知 NSFetchedResultsController
How to make NSFetchedResultsController be notified if related object changed
我的结构关系很简单
FeedItem - 根对象,它有对象 post。
"FeedItem"
{
"post" :
{"id" : 1, "name" : "Test"}
}
我将 NSFetchedResultsController 设为 FeedItem,但在一种情况下我对 post 对象进行了更改。
我想知道,是否可以让 NSFetchedResultsController 在更改相关对象时触发?
我通过
找到了解决方案
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(refreshData:)
name:NSManagedObjectContextObjectsDidChangeNotification
object:nil];
但在这种情况下,我需要手动检查通知中是否有我的对象,因为它包含所有要更新、添加、删除的对象。
FRC 仅跟踪 Feed 项目中的更改,而不跟踪与其相关的项目。如果您想触发更改,则需要进行更改,例如删除并重新添加关系,因此提要项是脏的并且将被保存。
您的通知是一个可以接受的替代方案,它更简洁并且意图明确。
我的结构关系很简单
FeedItem - 根对象,它有对象 post。
"FeedItem"
{
"post" :
{"id" : 1, "name" : "Test"}
}
我将 NSFetchedResultsController 设为 FeedItem,但在一种情况下我对 post 对象进行了更改。
我想知道,是否可以让 NSFetchedResultsController 在更改相关对象时触发?
我通过
找到了解决方案[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(refreshData:)
name:NSManagedObjectContextObjectsDidChangeNotification
object:nil];
但在这种情况下,我需要手动检查通知中是否有我的对象,因为它包含所有要更新、添加、删除的对象。
FRC 仅跟踪 Feed 项目中的更改,而不跟踪与其相关的项目。如果您想触发更改,则需要进行更改,例如删除并重新添加关系,因此提要项是脏的并且将被保存。
您的通知是一个可以接受的替代方案,它更简洁并且意图明确。