这有点棘手。
我有Document
个实体当前正从后台线程上的SQLite数据库导入到CoreData中。后台线程有一个单独的上下文,我每500个条目批处理一次。
保存后台线程上下文会触发一个通知,该通知会抓取我主线程的上下文并执行两者之间的合并。
如果我只导入document
个实体,那么一切都按预期工作。
当我尝试在正在创建的当前document
与另一个名为briefcase
的实体之间建立关系时,会出现问题。
这就是我的导入例程目前所做的事情:
Briefcase
实体Document
个实体ContextSave
通知,该通知会抓取主线程并与主线程的上下文合并。Briefcase
实体与主线程合并,所以当我的循环继续时,创建的下一个文档实体尝试将自己与公文包关联,这是我遇到崩溃的地方,说我不能建立之间的关系单独线程上的对象。 我知道如果我在保存之后删除了重置上下文的调用,一切都按预期工作,但我的内存占用率上升,这不是我准备接受的。
所以我的问题是:
你能想到一种方法来保持整个导入过程的公文包实体(并且有效),以便我可以继续创建关系吗?
我的第一个想法是创建没有上下文的公文包实体,然后在整个过程完成后将其添加到上下文中。这不能很好地工作(它在创作时崩溃了。)
非常感谢您的想法。 ROG
答案 0 :(得分:1)
回答我自己的问题: