0

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
    }

}
4

0 に答える 0