在Core Data中,您可以在从数据库检索其他数据的同时插入数据吗?
在Core Data中,可以同时进行查询和插入操作,这通常需要在多个线程上进行操作。解决这个问题的最佳方法是为每个线程(或队列)创建一个NSManagedObjectContext。
我会这样设置:在主线程(UI线程)上有一个专门用于获取数据的NSManagedObjectContext,还有一个在单独的线程上用于插入数据的NSManagedObjectContext,其父上下文设置为主上下文。这样,当在子上下文中保存数据时,您将在主上下文中看到这些新对象,并且您可以进行新的查询(或者如果您使用了NSFetchedResultsController,它将为您更新)。
关于parentContext的详细信息可以参考WWDC 2011关于Core Data的视频。
解决方法参考链接:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html#//apple_ref/doc/uid/TP40003385