可能重复:
Core Data vs SQLite 3
我一直在使用 SQLite 在我的 iOS 应用程序中保存数据(对于最多超过 20,000 行的表)。但是,我在使用 SQLite 时遇到了一个问题,当我在SELECT
向表中插入数据时尝试使用语句时,该SELECT
语句将不起作用。
像这样的东西会在 Core Data 中工作吗?我可以在向数据库中插入新数据的同时从数据库中检索数据吗?
可能重复:
Core Data vs SQLite 3
我一直在使用 SQLite 在我的 iOS 应用程序中保存数据(对于最多超过 20,000 行的表)。但是,我在使用 SQLite 时遇到了一个问题,当我在SELECT
向表中插入数据时尝试使用语句时,该SELECT
语句将不起作用。
像这样的东西会在 Core Data 中工作吗?我可以在向数据库中插入新数据的同时从数据库中检索数据吗?
是的,您可以同时在 Core Data 上进行查询和插入,我假设您希望在多个线程上进行。最好的方法是为每个线程(或队列)设置一个 NSManagedObjectContext。
我设置它的方式是让你的主线程(UI)有一个 NSManagedObjectContext 仅用于获取数据,一个用于插入单独的线程,其 parentContext 设置为主线程。这样,当您保存在子上下文中时,您将在主上下文中看到这些新对象,并且您可以进行新的获取(或者如果您有 NSFetchedResultsController,它会为您更新它)。
WWDC 2011 有关核心数据的视频详细讨论了 parentContext。