2012-04-02 131 views
3

我正在创建一个关于鸟类的应用程序。这个应用程序也应该在离线模式下工作。所以我决定使用Core Data。我计划拥有一张有大约700张唱片的桌子。所有的鸟类将以桌面视图显示。 工作流程应该是这样的:与网络服务器同步核心数据

  1. 用户启动应用程序
  2. 请求被发送到服务器后台
  3. 响应解析
  4. 数据库更新

我很感兴趣有什么最好的方法来做到这一点。我的意思是添加请求“最后修改”字段,这将减少数据库应该更新的次数。我应该删除我的实体的所有实例,或比较“最后修改”字段,然后更新/删除/插入一个接一个地循环它们吗?有没有人做过时间分析? 当用户在已经删除旧实例并且未插入新实例的期间用鸟打开屏幕时,他将看到一个空表视图,如何处理这种情况,我是否需要一个tmp实体? 我还有其他缺陷吗?

回答

1

如果我理解你的话,你可以在应用程序和服务器数据库中修改你的鸟,并且你希望最后一次更改被保存并转移到另一端。然后你可以在你的NSUserDefaults中使用类似Last sync的东西,并且当你发送一个请求到服务器时,你发送你在上一次同步之后修改的所有入口(这是对核心数据的简单请求),服务器还应该让你回到他上次同步后更新的鸟类列表,以便您可以在应用中更新它们,然后更新LastSync值。

如果你只是总是从服务器获取所有更新的鸟,只需使用我的答案的第二部分。