0

我有数据保存在需要与我的服务器同步的设备上,就设计而言,我是否走在正确的轨道上?

我有一个带有返回本地对象的方法的模型,我们称之为[model objects]';

在此方法中,它会立即返回本地对象,但我还想检查服务器是否需要更新这些对象中的任何一个,因此在后台线程中我运行了一个使用 an 的方法,该方法async NSUrlConnection将返回需要更新的每个对象的 JSON更新,我将把它保存到核心数据中。在表视图控制器中,我将设置一个 KVO 来观察值何时更改,updatedObjects然后重新加载显示在objectTableView.

问题:这是处理这个问题的正确方法吗?我错过了什么吗?我可以以某种方式改进吗?

我也在考虑禁用正在更新的对象的 UITableViewCells 并UIActivityIndicator在下载和保存阶段显示,但我不确定这是否会导致 UX 中的任何竞争条件。

希望这已经解释得足够好让您理解,如果您有任何问题,我会立即回复。

4

1 回答 1

0

CoreData 中支持此类问题。并且有多种方法。

基本要点是您在后台线程中为异步 Web 调用创建一个新上下文,然后将您的本地数据与您管理更新的新接收数据进行比较。然后执行从线程上下文到主上下文的合并。此时您可以在 CoreData 中收到更新数据的通知并更新您的视图。

您甚至可以使用它NSFetchedResultsController来进一步简化它。

于 2012-11-06T18:32:56.330 回答