2010-04-17 64 views
0

我有一個應用程序,它結合了線程和CoreData。NSManagedObjectMergeError錯誤的原因[NSManagedObjectContext保存:]

我正在使用一個全局NSPersistentStoreCoordinator和一個主NSManagedObjectContextModel

我有一個過程,我必須同時下載9個文件,所以我創建了一個對象來處理下載(每個單獨的下載都有自己的對象)並將其保存到persistentStoreCoordinator

[NSURLConnection connectionDidFinishLoading:]方法中,我創建了一個新的NSManagedObject並嘗試保存數據(也將它與主要managedObjectContext合併)。

我認爲它是失敗的,因爲多個進程試圖保存到persistentStoreCoordinator,同時下載在同一時間完成。

什麼是最簡單的方法來消除這種錯誤,仍然獨立下載文件?

回答

3

NSManagedObjectContext實例知道如何鎖定NSPersistentStoreCoordinator。由於您已經在使用每個線程最多可能不是問題的NSManagedObjectContext

這將有助於瞭解您得到的錯誤是什麼。展開NSError並查看它的-userInfo。如果userInfo字典包含密鑰NSDetailedErrors。與此鍵關聯的值將是一個數組,您可以循環查看其中的所有錯誤。這將有助於確定發生了什麼。

這很可能是因爲錯誤可能與驗證一樣簡單,或者缺少所需的值,並且與實際的線程無關。