Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios [[NSManagedObject changedValuesForCurrentEvent]]返回旧值_Ios_Core Data_Nsmanagedobject - Fatal编程技术网

Ios [[NSManagedObject changedValuesForCurrentEvent]]返回旧值

Ios [[NSManagedObject changedValuesForCurrentEvent]]返回旧值,ios,core-data,nsmanagedobject,Ios,Core Data,Nsmanagedobject,[NSManagedObject changedValuesForCurrentEvent]返回旧值。有人面临这个问题吗 医生说: 返回一个字典,其中包含自上次发布NSManagedObjectContextObjectsIDChangeNotification以来已更改的持久属性的键和(新)值 但实际上它返回旧值。我在响应NSManagedObjectContextObjectsIDChangeNotification时看到了这一点。我不知道这是否与其他NSManagedObjectConte

[NSManagedObject changedValuesForCurrentEvent]返回旧值。有人面临这个问题吗

医生说:

返回一个字典,其中包含自上次发布NSManagedObjectContextObjectsIDChangeNotification以来已更改的持久属性的键和(新)值


但实际上它返回旧值。

我在响应
NSManagedObjectContextObjectsIDChangeNotification时看到了这一点。我不知道这是否与其他
NSManagedObjectContext
通知一致。作为解决方法,我使用键通过以下方式从托管对象本身获取新值:

NSDictionary *changedProperties = [managedObject changedValuesForCurrentEvent];
for(NSString *key in changedProperties) {
    NSObject *newValue = [managedObject performeSelector:NSSelectorFromString(key)];
}
另一方面:我发现(在某些情况下),在执行保存操作之前,必须使用
[managedObjectContext refreshObj:managedObject mergeChanges:NO]
取消对象故障,以获取当前/旧值。在我的例子中,我需要遍历已删除对象的关系。但是即将被删除的对象关系已经为空。刷新对象解决了这个问题

希望这有帮助