我有一个结合了线程和 CoreData 的应用程序。
我正在使用一个全局 NSPersistentStoreCoordinator
和一个主 NSManagedObjectContextModel
。
我有一个过程,必须同时下载 9 个文件,因此我创建了一个对象来处理下载(每个单独的下载都有自己的对象)并将其保存到 persistentStoreCoordinator
。
在 [NSURLConnection connectionDidFinishLoading:]
方法中,我创建了一个新的 NSManagedObject
并尝试保存数据(这也会将其与主 managedObjectContext 合并)
)。
我认为它失败是由于多个进程试图同时保存到persistentStoreCoordinator
,而下载大约在同一时间完成。
消除此错误并仍然独立下载文件的最简单方法是什么?
最佳答案
NSManagedObjectContext
实例知道如何锁定NSPersistentStoreCoordinator
。由于您已经在每个线程使用一个 NSManagedObjectContext
,因此很可能不是问题所在。
这将有助于了解您遇到的错误是什么。展开 NSError
并查看其 -userInfo
。如果 userInfo
字典包含键 NSDetailedErrors
。与此键关联的值将是一个数组,您可以循环遍历并查看其中的所有错误。这将有助于确定发生了什么。
错误很可能是像验证或缺少所需值一样简单的错误,并且与实际线程无关。
关于iphone - [NSManagedObjectContext save :] 上出现 NSManagedObjectMergeError 错误的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2656805/