Ios 跟踪NSManagedObject的属性更改

Ios 跟踪NSManagedObject的属性更改,ios,core-data,nsmanagedobject,nsmanagedobjectcontext,Ios,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,我正在寻找一种跟踪NSManagedObject属性更改的方法 目前,我使用NSNotifactionCenter查看managedobjectcontext的更改: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleDataModelChange:) name:NSManagedObjectContextObjectsDidChangeNotification object:self.

我正在寻找一种跟踪NSManagedObject属性更改的方法

目前,我使用NSNotifactionCenter查看managedobjectcontext的更改:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleDataModelChange:) name:NSManagedObjectContextObjectsDidChangeNotification object:self.managedObjectContext];
它触发handleDataModelChange方法,如下所示:

- (void)handleDataModelChange:(NSNotification *)note
{
    NSSet *updatedObjects = [[note userInfo] objectForKey:NSUpdatedObjectsKey];

    if (updatedObjects.count > 0) {
        for (NSManagedObject *obj in updatedObjects.allObjects) {
            NSLog(@"Object updated: %@ with values:",obj.entity.name);
            NSDictionary *theAttributes = [self getAllAttributesOf:obj];
            for (NSString *attributeName in theAttributes) {
                NSLog(@"Name: %@ : %@",attributeName,[obj valueForKey:attributeName]);
            }
        }
    }
}
这将记录对象的新属性(如果对象发生更改)。如何获得旧属性值的方法?

来自:

更改值 返回一个字典,其中包含自上次获取或保存接收器以来已更改的持久属性的键和(新)值

更改循环事件的值
返回一个字典,其中包含自上次发布
nsManagedObjectContextObjectsIDChangeNotification

以来已更改的持久性属性的键和旧值。您可以尝试从存储中提取旧值吗?@Mundi您是否建议执行单独的提取请求?当然可以。否则您将如何获取它?changedValues返回一个带有一个键的字典,其中包含关系的新值,但changedValuesForCurrentEvent返回一个空集。有什么想法吗?