我真的在努力解决这个问题:
我有一个保存在核心数据中的对象。我有一个方法来更新该对象的一些属性。我正在使用来自obj.managedObjectContext
的该对象的托管对象上下文。
我更改了2个属性:obj.pending = YES
和obj.body = 'text'
。
然后我将对象保存回Core Data,如下所示:
if ([managedObjectContext save:&saveError]) {
[persistenceController saveContextAndWait:YES completion:^(NSError *error) {
[OfflineManager postData];
}];
}
postData
方法从核心数据中获取obj.pending == YES
所有对象并发布数据。它的managedObjectContext类型为NSPrivateQueueConcurrencyType
。
我的问题如下:obj.pending
似乎正在更新,但obj.body
不是。如果我在发布并重新启动应用之前向应用添加断点,则obj.body
已正确更新。
如果这是一个上下文问题,为什么一些对象属性的变化被看到而另一些不被看到?
我已经在这几个小时里乱哄哄,任何帮助都会非常感激。
由于
答案 0 :(得分:0)
感谢@Avi提供解决方案。问题在于持久化上下文,而没有合并处理程序来处理后台上下文。我的解决方案是每次为postData
方法创建一个新的上下文。