我正在为现有的Web应用程序开发一个配套的iPhone应用程序。
为了简要概述,iPhone应用程序是一个基于标签栏的应用程序,每个标签包含导航控制器。
目前,iPhone应用程序正在主线程上以同步模式从Web应用程序下载数据,当然,它会占用UI。选项卡栏中的两个选项卡都将其导航控制器的主视图作为UITableView,使用FetchedResultsController处理从Core Data显示的相应数据。
既然我知道我在Web应用程序上的API中的所有数据传输和处理工作正常,我想将数据同步从主线程移动到应该存在的后台。
我的问题是如何在后台线程中正确处理这个问题,然后正确地通知FRC所在的主线程需要更新它的视图?我有一个SyncController正在进行数据检索和相关的核心数据处理,可以继续使用,但我应该如何让主线程用新的核心数据内容更新它的视图?
由于在使用具有多个部分的FRC时对核心数据进行大量更新的错误,我刚刚在Config单例实例中设置了批量更新标志,但我不相信我仍然可以使用相同的技术以及后台线程,对吗?
答案 0 :(得分:2)
您可以在同步操作期间创建单独的NSManagedObjectContext
。查看TopSongs示例项目。它使用CD和NSOperation
在单独的线程上执行刷新。当您保存同步上下文时,将发布通知,您可以使用它来表示您需要更新视图。在具有FRC的viewController中注册NSManagedObjectContextDidSaveNotification
。