Определение полей, которые были изменены до сохранения CoreData

//настроить уведомления

[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(dataChanged:)
 name:NSManagedObjectContextDidSaveNotification
 object:context];    

//позже

- (void)dataChanged:(NSNotification *)notification{
  NSDictionary *info = notification.userInfo;
  NSSet *insertedObjects = [info objectForKey:NSInsertedObjectsKey];
  NSSet *deletedObjects = [info objectForKey:NSDeletedObjectsKey];
  NSSet *updatedObjects = [info objectForKey:NSUpdatedObjectsKey];

Нужно ли в любом случае определить из обновленных объектов, какие поля были фактически изменены?

спасибо, Майкл

Ответ 1

Следующее должно сделать трюк, но вам нужно будет использовать NSManagedObjectContextWillSaveNotification и получить доступ к обновленным объектам через тот же NSManagedObjectContext, который использовался для сохранения объектов.

for(NSManagedObject *obj in updatedObjects){

   NSDictionary *changes = [obj changedValues];
   // now process the changes as you need

}

См. обсуждение в комментариях.