gpt4 book ai didi

swift - 在后台线程中将数据同步到服务器 : multiple-contexts in core data

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:07 27 4
gpt4 key购买 nike

我有两个 NSManagedObjectContext:parentContext 是主上下文,childContext 是 PrivateQueueConcurrencyType。使用 childContext,我在后台线程中将数据同步到服务器,在同步成功后,我设置了 data.isSynced = true

用户可能会在同步期间更改数据。这将通过设置 data.isSynced = false 将数据标记为脏数据。

两个线程(主线程和同步线程)同时运行,如果 parentContext 有 data.isSynced == false 并且 childContext 有 data.isSynced == true,这里可能会发生糟糕的情况。调用 childContext.save() 将覆盖 parentContext 中的更改,我将错过更改并且不会再次将更新的数据同步到服务器。

如何改进当前的设计?有没有办法自定义父子上下文之间的合并?

最佳答案

不要使用单个 bool 标志,而是使用 2 个日期。一个日期是最后一次编辑,另一个是最后一次同步。它们每个都只从 1 个线程更新。后台线程将读取两者以检查是否需要同步数据,但这没关系。

关于swift - 在后台线程中将数据同步到服务器 : multiple-contexts in core data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com