在Core Data中,您可以在从数据库中检索其他数据时插入数据吗?

时间:2012-04-23 19:43:21

标签: iphone objective-c sqlite core-data

  

可能重复:
  Core Data vs SQLite 3

我一直在使用SQLite在我的iOS应用程序中保存数据(对于最多超过20,000行的表)。但是,我遇到了SQLite的问题,当我在向表中插入数据时尝试使用SELECT语句时,SELECT语句将无效。

这样的东西会在Core Data中运行吗?我可以在将新数据插入数据库的同时从数据库中检索数据吗?

1 个答案:

答案 0 :(得分:3)

是的,您可以同时对Core Data进行查询和插入,我假设您希望在多个线程上执行此操作。执行此操作的最佳方法是为每个线程(或队列)安装NSManagedObjectContext。

我设置它的方法是让你的主线程(UI)有一个NSManagedObjectContext来获取数据,一个用于插入一个单独的线程,其parentContext设置为主线程。这样,当您保存子上下文时,您将在主上下文中看到这些新对象,并且您可以执行新的提取(或者如果您有NSFetchedResultsController,它将为您更新它)。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html#//apple_ref/doc/uid/TP40003385

关于核心数据的WWDC 2011视频详细讨论了parentContext。