我在各种项目中使用过 Core Data,所以我知道如何处理从线程到主应用程序的上下文合并。
我的问题是,在我正在处理的新应用程序中,我有一个主上下文和一个线程上下文,它们在整个应用程序生命周期中都存在,而通常我为每个线程调用创建一个上下文。
所以我不确定如何处理我在主线程中修改对象的情况。我需要将它们合并到上下文线程吗?如何 ?是否可以在每次调用之前要求上下文线程从主上下文重新同步?
我在各种项目中使用过 Core Data,所以我知道如何处理从线程到主应用程序的上下文合并。
我的问题是,在我正在处理的新应用程序中,我有一个主上下文和一个线程上下文,它们在整个应用程序生命周期中都存在,而通常我为每个线程调用创建一个上下文。
所以我不确定如何处理我在主线程中修改对象的情况。我需要将它们合并到上下文线程吗?如何 ?是否可以在每次调用之前要求上下文线程从主上下文重新同步?
您可以从主线程收听 NSManagedObjectContextDidSaveNotification 并将其合并到您需要的地方。我的建议是改变你的方法,不要从主线程进行保存。让主线程远离数据库IO,在后台保持需要同步的MOC的同步。
在不知道其他上下文正在执行的任务的情况下,很难说使其他上下文保持最新的最佳方法是什么。
您可以尝试使用NSManagedObjectContext
'setStalenessInterval:
方法,然后确保您在该上下文中使用的所有托管对象refreshObject:mergeChanges:
在您完成使用它们时都恢复为错误。