将核心数据与Web服务器同步

时间:2012-04-02 23:46:09

标签: ios xcode web-services core-data

我正在创建一个关于鸟类的应用程序。此应用也应该在离线模式下工作。所以我决定使用Core Data。我打算有1张表,大约有700条记录。所有的鸟都将以表格形式显示。 工作流程应该是这样的:

  1. 用户启动应用
  2. 请求以后台方式发送到服务器
  3. 解析响应
  4. 数据库已更新
  5. 我很感兴趣这是最好的方法。我的观点是添加到请求“上次修改”字段,这将减少数据库应更新的次数。我应该删除我的实体的所有实例,还是逐个循环比较“last modified”字段然后更新/删除/插入?有人做过时间分析吗?  当用户在旧实例已被删除且未插入新实例的时间段内打开带有鸟类的屏幕时,他将看到一个空表视图,如何处理这种情况,我是否需要tmp实体? 我错过了其他任何陷阱吗?

2 个答案:

答案 0 :(得分:1)

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

如果您只是要从服务器获取所有更新的鸟类,请使用我的答案的第二部分。

答案 1 :(得分:1)