无法从乐观锁定失败中恢复

sub*_*arb 5 core-data objective-c ios

我正在从我的模型中删除所有对象,除了用户与之交互的某些对象。

删除后,我从 JSON 中获取那些保存的对象并更新它们的信息,当我保存 managedContext 时,应用程序崩溃打印“无法从乐观锁定失败中恢复”。

我一直在寻找,但我没有找到任何关于这条消息意味着什么的信息,知道吗?

谢谢。

Mun*_*ndi 0

谷歌的第一个结果,来自苹果的文档。(你究竟在哪里“看”过?)

问题:您看到错误消息“无法合并更改”。

原因:两个不同的托管对象上下文尝试更改相同的数据。这也称为乐观锁定失败

补救措施:在上下文上设置合并策略,或手动(以编程方式)解决故障。您可以使用commitedValuesForKeys:检索对象当前提交的值,并且可以使用refreshObject:mergeChanges:重新对对象进行故障处理(以便下次访问该对象时从其持久性存储中检索其数据值)。

尽管错误消息不同,但这听起来非常像您的情况,因为您很可能有多个上下文尝试修改相同的对象。
尝试将合并策略设置为NSMergeByPropertyObjectTrumpMergePolicyType