CoreData prepareForDeletion 调用无限次

Posted

技术标签:

【中文标题】CoreData prepareForDeletion 调用无限次【英文标题】:CoreData prepareForDeletion Called Infinite Times 【发布时间】:2012-02-15 17:19:25 【问题描述】:

我的应用维护了两个 NSManagedObjectContexts。一个在主线程上运行,另一个处理网络事件并在后台线程上运行。

每当收到网络事件时:

    主 MOC 进行保存 后台线程合并更改 处理网络事件并将更改应用到后台 MOC 后台 MOC 保存。 主 MOC 合并更改。

在我尝试删除主线程中的 NSManagedObject 之前,这可以正常工作:

一个。在第 2 步之后,prepareForDeletion 在后台线程上再次被调用

b.在第 5 步之后在主线程上调用 prepareForDeletion

更糟糕的是每次 MOC 保存/合并可憎和 b。抬起他们丑陋的脑袋。

据我所知,NSManagedObject 正在被复活然后被删除,一遍又一遍。

在这个问题上,我正在撕扯我的头发。上周我一直在努力让多个 MOC 运行。我不知道这么简单的事情会引起这么多的悲伤。

【问题讨论】:

【参考方案1】:

罗兰,

我的建议是不要维护后台 MOC。相反,请始终在开始后台处理时创建它。这样,它始终与持久存储处于相同状态。 (行缓存是你的朋友。不用太担心后台 MOC 的状态。)

安德鲁

【讨论】:

谢谢。这帮助很大!

以上是关于CoreData prepareForDeletion 调用无限次的主要内容,如果未能解决你的问题,请参考以下文章

CoreData与CloudKit同步时将图像保存到CoreData?

RestKit + CoreData:从CoreData缓存中排除某些对象

Coredata — 入门使用

认识CoreData—初识CoreData

Coredata 单表简单使用

iOS CoreData