我有一个类正在观察何时创建一个新对象'Product',以便它可以更新'User'对象中的细节。
当我保存我的Product对象时,我在后台线程上的方法中执行它,该方法发出已创建新对象的Notification。我在通知的userInfo中设置了对象。
观察员在发布通知时触发。我需要保存一些数据,所以我创建了一个新的保存块,然后创建一个新的NSManagedObjectContext。我 ASSUME 我必须在这个新的上下文中获取对象。
不幸的是,当我尝试从新上下文中获取记录时,它返回一个带有空详细信息的对象。但是,来自通知的userInfo的对象已完全填充。
我是否正确地假设我需要重新获取记录?重新获取的记录是否为空可能是因为保存尚未完成?
答案 0 :(得分:0)
我们谈论的通知是saveContext完成时生成的CoreData吗? (NSManagedObjectContextDidSaveNotification)。
在这种情况下,当您收到通知时,您必须手动将上下文与
合并dispatch_sync(dispatch_get_main_queue(), ^{
[_managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
});
因此,保存了Product实体中的更改的上下文将其更改合并到其他上下文中。
希望它有所帮助。