核心数据不在私有上下文中更新对象

时间:2016-09-01 07:28:36

标签: ios objective-c core-data nsmanagedobjectcontext

我真的在努力解决这个问题:

我有一个保存在核心数据中的对象。我有一个方法来更新该对象的一些属性。我正在使用来自obj.managedObjectContext的该对象的托管对象上下文。

我更改了2个属性:obj.pending = YESobj.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已正确更新。

如果这是一个上下文问题,为什么一些对象属性的变化被看到而另一些不被看到?

我已经在这几个小时里乱哄哄,任何帮助都会非常感激。

由于

1 个答案:

答案 0 :(得分:0)

感谢@Avi提供解决方案。问题在于持久化上下文,而没有合并处理程序来处理后台上下文。我的解决方案是每次为postData方法创建一个新的上下文。