我正在使用核心数据来持久化我的数据模型,这非常简单,三个实体是这样的:A<-->>B<-->>C。当我的模型发生变化时,我需要执行一些活动。为此,我正在监听 NSManagedObjectContextObjectsDidChangeNotification,在 viewDidLoad 中使用以下代码:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(updateReminder:)
name:NSManagedObjectContextObjectsDidChangeNotification
object:self.managedObjectContext];
在 updateReminder 方法中,我做了需要做的事情。问题是当通知执行时,更改不会持久化。如果创建了新实体,则不会保存,如果更改了某些内容,则不会保存更改。有任何想法吗?
编辑: updateReminder 的代码如下:
- (void)updateReminder:(NSNotification *)notification
{
A *entityAUpdated = [[notification userInfo] objectForKey:NSUpdatedObjectsKey];
if (entityAUpdated) {
...Do something when entityA is updated.
}
A *entityADeleted = [[notification userInfo] objectForKey:NSDeletedObjectsKey];
if (entityADeleted) {
...Do something when entityA is Deleted.
}
A *entityAInserted = [[notification userInfo] objectForKey:NSInsertedObjectsKey];
if (entityAInserted) {
...Do something when entityA is Inserted
}
}