Identificar qué campos han cambiado antes de que CoreData guarde

// configurar notifications

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

//luego

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

¿Hay alguna forma de determinar a partir de los objects actualizados qué campos se cambiaron realmente?

gracias michael

Lo siguiente debería hacer el truco, pero deberá usar NSManagedObjectContextWillSaveNotification y acceder a sus objects actualizados a través del mismo NSManagedObjectContext utilizado para save los objects.

 for(NSManagedObject *obj in updatedObjects){ NSDictionary *changes = [obj changedValues]; // now process the changes as you need } 

Vea la discusión en los comentarios.