核心数据重用背景上下文理解

时间:2019-01-04 13:29:19

标签: ios objective-c core-data

我有一个[self.persistentContainer performBackgroundTask:block],该块基本上只是读取记录,将它们上传到服务器,然后修改/保存记录以反映它们的状态。

如果我连续多次调用该函数,则可能会同时发送多个记录(因为performBackgroundTask:创建了一个新的后台上下文)。

获取单个背景上下文并通过[self.persistentContainer newBackgroundContext]重用它会更“正确”吗?这样,由于我假设现在将对这些操作进行排队,因此多次调用不会出现上述问题。

我将像这样使用它:[self.backgroundContext performBlock:block]

由于我不希望由于重复的上传而同时进行多次上传,因此我要这样做:
如果对performBlock:进行了4次调用,则内部核心数据backgroundContext将处理第一个块,等待记录完成,第二个块现在执行(且未找到任何记录)并完成,与第三和第四次调用相同。

如果这样做,会不会有任何问题?还是我的理解不正确?

0 个答案:

没有答案