2013-02-12 62 views
2

[NSManagedObject changedValuesForCurrentEvent]返回舊值。有人遇到這個問題嗎?[[NSManagedObject changedValuesForCurrentEvent]]返回舊值

文件說:

返回一個包含自NSManagedObjectContextObjectsDidChangeNotification最後發佈已更改的鍵和持久​​性的(新)值的字典。

但實際上它返回的是舊值。

回答

0

我在回覆NSManagedObjectContextObjectsDidChangeNotification時看到了這個。我不知道這是否與其他NSManagedObjectContext通知一致。由於周圍的工作,我用鑰匙通過抓住從管理對象本身的新值:

NSDictionary *changedProperties = [managedObject changedValuesForCurrentEvent]; 
for(NSString *key in changedProperties) { 
    NSObject *newValue = [managedObject performeSelector:NSSelectorFromString(key)]; 
} 

在另一面:我發現(在某些情況下),你不得不取消您的故障對象在保存操作之前使用[managedObjectContext refreshObj:managedObject mergeChanges:NO]獲取當前/舊值。就我而言,我需要遍歷已刪除對象的關係。但即將被刪除的對象關係已經被取消。刷新對象解決了這個問題。

希望這會有所幫助。