我的問題類似於this one。核心數據錯誤與異常第3部分
背景
我創造了大量使用NSOperations加快速度在覈心數據存儲對象。
我遵循所有核心數據多線程規則 - 我有一個單一的持久性存儲協調器和每個線程的託管對象上下文,保存時會合並回主要的託管對象上下文。
的問題
當同時運行的線程數超過1,我得到的異常登錄保存我的核心數據存儲:
NSExceptionHandler has recorded the following exception:
NSInternalInconsistencyException -- optimistic locking failure
我有什麼試過
我創建新實體的代碼是相當複雜的 - 它使與其他實體有關係的實體可能在一個分離中創建te線程。
如果我用一些非常簡單的代碼替換我的對象創建例程,只是製作非相關的條目,一切都很完美。
最初,除了例外情況,我得到一個保存錯誤,說核心數據由於合併失敗而無法保存。
我閱讀文檔,並意識到我需要一個關於我保存的託管對象上下文的合併策略。我設置了這個,並且如this question所述,保存錯誤消失,但仍然存在異常。
我的問題
我是否需要擔心這些例外?如果我確實需要擺脫例外情況,有關我如何做的任何想法?
感謝您的評論本篤。我更新了我的問題,並提供了更多細節。我仔細研究了核心數據多線程指南,並花了大量時間確保使用簡單的實體創建算法,NSOperations完美地工作。我想知道解決方案是否會以不同的方式去創建對象... – 2010-04-16 14:41:49