2

可能重复:
Core Data vs SQLite 3

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

像这样的东西会在 Core Data 中工作吗?我可以在向数据库中插入新数据的同时从数据库中检索数据吗?

4

1 回答 1

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。

于 2012-04-23T21:29:09.403 回答