首页 > 解决方案 > 如何在 Coredata 中管理并发?

问题描述

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

由于不同操作同时在后台完成核心数据处理,因此会创建重复的托管对象。

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

我该如何解决这个问题?

我认为performAndWait()在后台上下文中使用将确保我的后台核心数据更新都在一个线程上执行。但是仍然会创建重复的托管对象。

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

标签: iosswiftcore-data

解决方案


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


推荐阅读