0
這是一個棘手的問題。核心數據關係,多個託管對象上下文和線程
我有Document
實體,當前正從後臺線程上的SQLite數據庫導入到CoreData中。背景線程有一個單獨的上下文,我正在每500個條目分配一次保存。
保存後臺線程上下文會觸發一個通知,該通知抓取我的主線程的上下文並在兩者之間執行合併。
如果我只導入document
實體,一切都按預期工作。
當我嘗試建立當前document
被創建時,另一個實體briefcase
之間的關係時,會出現我的問題。
這就是我的進口程序目前確實:
- 通過SQLite數據庫行創建
Briefcase
實體 - 循環和創造
Document
實體的每一行 - 創建迴路中的文檔之間的關係,公文包實體
- 每隔500行,我保存&重置上下文。這會觸發一個
ContextSave
通知,該通知抓取主線程並與主線程的上下文合併。 - 這是我的問題是:保存&復位上面,我
Briefcase
實體獲取與主線程,所以當我繼續循環合併之後,下一個文檔實體創建試圖將自身與公文包相關聯,這是在我得到一個崩潰,說我無法在單獨的線程上建立對象之間的關係。
我知道,如果在保存後刪除調用以重置上下文的調用,那麼所有操作都按預期工作,但是我的內存佔用量增加了,這不是我準備接受的。
所以我的問題是:
你能想到的周圍(合法的)保持公文包實體整個導入過程,所以我可以繼續創建關係的一種方式?
我的第一個想法是創建沒有上下文的公文包實體,然後在整個過程完成後將其添加到上下文中。這並沒有奏效(它在創作時崩潰了)。
您的想法非常感謝。 羅格