如何使用iPhone Fetched Results Controller处理web-app数据同步

时间:2010-06-25 13:05:19

标签: iphone objective-c core-data

我正在为现有的Web应用程序开发一个配套的iPhone应用程序。

为了简要概述,iPhone应用程序是一个基于标签栏的应用程序,每个标签包含导航控制器。

目前,iPhone应用程序正在主线程上以同步模式从Web应用程序下载数据,当然,它会占用UI。选项卡栏中的两个选项卡都将其导航控制器的主视图作为UITableView,使用FetchedResultsController处理从Core Data显示的相应数据。

既然我知道我在Web应用程序上的API中的所有数据传输和处理工作正常,我想将数据同步从主线程移动到应该存在的后台。

我的问题是如何在后台线程中正确处理这个问题,然后正确地通知FRC所在的主线程需要更新它的视图?我有一个SyncController正在进行数据检索和相关的核心数据处理,可以继续使用,但我应该如何让主线程用新的核心数据内容更新它的视图?

由于在使用具有多个部分的FRC时对核心数据进行大量更新的错误,我刚刚在Config单例实例中设置了批量更新标志,但我不相信我仍然可以使用相同的技术以及后台线程,对吗?

1 个答案:

答案 0 :(得分:2)

您可以在同步操作期间创建单独的NSManagedObjectContext。查看TopSongs示例项目。它使用CD和NSOperation在单独的线程上执行刷新。当您保存同步上下文时,将发布通知,您可以使用它来表示您需要更新视图。在具有FRC的viewController中注册NSManagedObjectContextDidSaveNotification