我正在从一个服务器(XML,JSON等)提取数据的常规iPhone应用程序,我想知道实现同步数据的最佳方式是什么。标准是速度(较少的网络数据交换),健壮性(在更新失败的情况下数据恢复),脱机访问和灵活性(当数据库结构稍微改变时可以调整,如新列)。我知道它因应用程序而异,但你们可以分享一些你的战略/经验吗?在iPhone应用程序中同步数据的最佳策略
对于我来说,我想的是这样的:在启动
1)店铺最后修改日期在iPhone
2),发送邮件一样getNewData.php lastModifiedDate = ...?
3)服务器将处理并发回上次修改后的数据。
4)该数据被格式化为这样:
<+><data id="..."></data></+> // add this to SQLite/CoreData
<-><data id="..."></data></-> // remove this
<%><data id="..."><attribute>newValue</attribute></data></%> // new modified value
我不想让< +>,< - >,<%> ...对于每个属性也是如此,因为它太复杂了,所以很可能当收到一个<%字段时,我会删除数据与指定的ID,然后再次添加(假设这里的ID不是一些自动自动增加的字段)。
5)一旦下载并更新了所有内容,我将更新上次修改日期字段。
该策略的主要问题是:如果网络在我更新某些内容时出现故障=>上次修改日期尚未更新=>下次重新启动应用程序时,我将不得不经历相同的事情再次。更不用说潜在的不一致数据。如果我使用临时表进行更新并使整个事情成为原子,它将起作用,但如果更新过长(大量数据更改),则用户必须等待很长时间,直到有新数据可用。我应该为每个数据字段使用Last-Modified-Date并逐渐更新数据吗?