【发布时间】:2016-05-26 13:42:23
【问题描述】:
我有两个 NSManagedObjectContext :作为主要上下文的 parentContext 和带有 PrivateQueueConcurrencyType 的 childContext。
使用 childContext 我在后台线程中将数据同步到服务器,同步成功后我设置data.isSynced = true。
用户可能会在同步期间更改数据。这将通过设置data.isSynced = false 将数据标记为脏数据。
两个线程(主线程和同步线程)同时运行,如果 parentContext 具有 data.isSynced == false 而 childContext 具有 data.isSynced == true,则可能会出现糟糕的情况。调用 childContext.save() 将覆盖 parentContext 中的更改,我会错过更改并且不会再次将更新的数据同步到服务器。
如何改进当前的设计? 有没有办法自定义父子上下文之间的合并?
【问题讨论】:
标签: swift multithreading core-data nsmanagedobject nsmanagedobjectcontext