ios - 如何在 Coredata 中管理并发?
问题描述
我有一个使用coredata
. 当应用程序启动时,有许多cloudkit NSoperations
同时运行。在每个操作的完成块中,我都在做一些核心数据处理。
由于不同操作同时在后台完成核心数据处理,因此会创建重复的托管对象。
我正在使用 Coredata 的背景上下文和使用performAndWait()
方法来进行核心数据处理。
我该如何解决这个问题?
我认为performAndWait()
在后台上下文中使用将确保我的后台核心数据更新都在一个线程上执行。但是仍然会创建重复的托管对象。
作为一种解决方法,我正在使用核心数据的唯一属性约束功能。但这是正确的方法吗?
解决方案
我能够解决这个问题。正确的方法是使用 Core data 后台上下文。用于performAndWait()
在其块内执行所有核心数据处理任务。
推荐阅读
- flutter - 如何在 Flutter 中设计卡片下方
- node.js - Redis 会话正在刷新来自 Angular HTTP GET 的每个新请求,但不是来自浏览器
- javascript - TypeError:无法读取未定义的属性“querySelector”
- javascript - 如何删除小数点后的最后两个数字?
- xamarin - 是否可以用纯 xamarin 按钮覆盖 Webview 按钮并单击它,同时单击网站按钮?
- android - google 把最新的 gradle 工具搬到哪里了
- vb.net - 在 vb.net 中创建文件到另一个位置
- python - 如何使用 NLTK 查找未大写的专有名词?
- javascript - 将任意 UTF8 字节块解码为字符串是否安全?
- shell - 用于在日期和时间戳之间获取日志(json 格式)文件的 Shell 脚本