如何在Coredata中管理并发?

时间:2019-04-12 05:54:37

标签: ios swift core-data

我有一个使用coredata的多线程应用程序。 应用启动时,有许多cloudkit NSoperations同时运行。 在每个操作的完成块中,我都在进行一些核心数据处理。

由于核心数据处理是通过不同的操作在后台同时进行的,因此将创建重复的管理对象。

我正在使用Coredata的背景上下文,并使用performAndWait()方法进行核心数据处理。

我该如何解决这个问题?

我认为在后台Context上使用performAndWait()将确保我的后台Core Data更新全部在一个线程上执行。但是仍然会创建重复的受管对象。

作为一种解决方法,我正在使用Core数据的Unique属性约束功能。但这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题。 正确的方法是使用Core数据背景上下文。使用performAndWait()可以在其块内执行所有核心数据处理任务。