我有一个[self.persistentContainer performBackgroundTask:block]
,该块基本上只是读取记录,将它们上传到服务器,然后修改/保存记录以反映它们的状态。
如果我连续多次调用该函数,则可能会同时发送多个记录(因为performBackgroundTask:
创建了一个新的后台上下文)。
获取单个背景上下文并通过[self.persistentContainer newBackgroundContext]
重用它会更“正确”吗?这样,由于我假设现在将对这些操作进行排队,因此多次调用不会出现上述问题。
我将像这样使用它:[self.backgroundContext performBlock:block]
。
由于我不希望由于重复的上传而同时进行多次上传,因此我要这样做:
如果对performBlock:
进行了4次调用,则内部核心数据backgroundContext将处理第一个块,等待记录完成,第二个块现在执行(且未找到任何记录)并完成,与第三和第四次调用相同。
如果这样做,会不会有任何问题?还是我的理解不正确?