A<-->>B<-->>C. モデルで何かが変更された場合、何らかのアクティビティを実行する必要があります。そのために、viewDidLoad で次のコードを使用して、NSManagedObjectContextObjectsDidChangeNotification をリッスンしています。
[[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
}
}