我在多線程中使用單個MOC帶來了所有後果 - 我的應用程序隨機崩潰,因爲MOC是在主線程中創建的,我也用它來填充數據庫另一個線程。 雖然代碼是使用全局單例式同步(@synchronize),但應用程序崩潰。 我讀過爲每個線程使用單獨的MOC會使事情順利,但我也讀到它也被認爲是跨線程共享NSManagedObjects的一種不好的方法。核心數據 - 在多個線程之間共享NSManagedObjects
我的用例如下: 1)我從服務器加載和解析XML,並在解析過程中將每個新的NSManagedObject插入到數據庫中。這一切都發生在一個單獨的線程中。 2)從主線程用戶與從數據庫讀取數據的用戶界面進行交互。
在這兩個線程我使用NSManagedObjects。你會如何建議我解決這個問題?我已經多次失敗了。
大多數情況下,應用程序會出現錯誤,提示我在修改集合的同時枚舉它,因爲代碼是同步的,當我迭代它時,不會發生修改,反之亦然 - 當我修改它時, t迭代,我完成後保存。