与Web服务器同步核心数据

4

我正在创建一款关于鸟类的应用程序,该应用程序也应该能够在离线模式下工作。因此,我决定使用Core Data。我计划有一个大约有700条记录的表格。所有的鸟都将显示在表视图中。 工作流程应该是这样的:

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

我想知道最好的方法是什么。我的观点是在请求中添加“上次修改”的字段,这将减少数据库更新的次数。我应该删除实体的所有实例,还是循环它们并逐个比较“上次修改”字段然后进行更新/删除/插入操作?是否有人进行了时间分析? 当用户打开包含鸟类信息的屏幕时,旧实例已经被删除而新实例还未插入,则会看到一个空的表视图,如何处理这种情况,我需要一个临时实体吗? 还有其他我可能忽略的问题吗?

2个回答


1

如果我理解正确,您可以在应用程序和服务器数据库中修改您的鸟,并且您希望将最后的更改保存并传输到另一侧。那么您可以在您的NSUserDefaults中使用类似Last sync的东西,每次向服务器发送请求时,您都会发送自上次同步以来修改的所有实体(这是一个对核心数据的简单请求),服务器还应该向您返回更新后的鸟列表,因此您也可以在应用程序中更新它们,然后更新您的LastSync值。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接