NSManagedObjectContext从主线程合并到其他线程

时间:2012-10-03 14:48:49

标签: multithreading core-data merge nsmanagedobject nsmanagedobjectcontext

我在各种项目中使用了Core Data,因此我知道如何处理从线程到主应用程序的上下文合并。

我的问题是,在我正在开发的新应用程序中,我有一个主上下文和一个适用于整个应用程序生命周期的线程上下文,而通常我为每个线程调用创建了一个上下文。

所以我不知道如何处理我在主线程中修改对象的情况。我需要将它们合并到上下文线程吗?怎么样 ?是否可以在每次调用之前要求上下文线程从主上下文重新同步?

2 个答案:

答案 0 :(得分:0)

在不知道其他上下文正在执行的任务的情况下,很难说保持其他上下文最新的最佳方法是什么。

您可以尝试使用NSManagedObjectContext的{​​{1}}方法,然后在完成后确保使用setStalenessInterval:在该上下文中使用的所有托管对象都会变回故障和他们一起工作。

答案 1 :(得分:0)

您可以从主线程中侦听NSManagedObjectContextDidSaveNotification,并将其合并到您需要的位置。我的建议是改变你的方法,不要从主线程做保存。保持主线程远离数据库IO,并保持需要在后台同步的MOC的同步。