CoreData并通知后台工作人员主线程的变化

时间:2012-12-27 08:20:24

标签: ios core-data restkit

我以为我的情况非常简单,但经过一整天的搜索,我不确定我有答案!!!

我正在使用CoreData(通过实际使用RestKit和[RKObjectManager sharedManager].objectStore)。我保存数据只存储在主线程上。虽然我有很多后台线程从DB读取数据。如果主线程(使用main NSManagedObjectContext)将数据保存到DB,我找不到通知那些后台线程的任何好方法。

我看到的唯一方法是保留所有后台线程列表' NSManagedObjectContexts并在主线程上处理mergeChangesFromContextDidSaveNotification时发送每个NSManagedObjectContextDidSaveNotification

这是处理这种情况的正常方法吗?我感觉不是因为在多线程环境中管理这种缓存可能会出现的潜在问题。

1 个答案:

答案 0 :(得分:0)

没有细节,很难理解发生了什么,但是,在后台线程中使用NSManagedObjectContextDidSaveNotification

但是要小心,如果你创建了很多可以监听变化的线程,那么电池可能会非常迅速地下降。

根据我的经验,Core Data中的线程应该用作以下内容:创建一个或多个在共享持久性存储协调器中执行某些请求的线程。线程完成后停止(删除)它们。这种机制允许您在存储协调器的缓存中加载数据,从而加快在主线程中执行的未来请求。

希望有所帮助。

P.S。我不知道RestKit如何与Core Data配合使用。