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