iOS应用程序 - 用于将CoreData与Web服务同步的体系结构/示例

tsc*_*oss 7 web-services sync core-data iphonecoredatarecipes ios

我正在寻找一个示例应用程序或更多架构讨论来构建一个应用程序,它维护一个本地持久存储(CoreData)并使其与Flickr之类的Web服务保持同步.在我的例子中,它是Salesforce,但模式应该类似于Flickr,Twitter,IMAP等许多应用程序.

示例问题:调用同步的最佳点在哪里?什么是经过验证的数据结构来维护本地更改 - 在每个未经同步的更改中维护本地存储中的"已更改"BOOL; 我希望在记录级别标志上使用字段级别标志)?

当然,我必须自己优化这一点,知道记录的数量(100)和变化(每天10次)和冲突的概率(在我的情况下在场地级别上很低).

mel*_*sam 3

以下是我的处理方法:

  1. 首先对反映在线数据库的本地 CoreData/Sqlite 数据库进行建模。
  2. 将 NSDate lastModified 属性添加到每个表的每一行。这将使我能够跟踪记录级别的更改,而不是字段级别。这有助于降低同步复杂性,并且在大多数现实场景中,记录级同步就足够了。
  3. 应用程序启动时执行自动同步,并在导航栏中提供突出的“同步”按钮。这样,当应用程序在很长一段时间后启动时,用户始终拥有更新的数据集,并且可以同步一天中的最新更改。我会避免在使用应用程序时进行后台同步。当您尝试处理其他事情时,这将使您的应用程序更加复杂且容易出错。因此,请推迟后台/自动同步的工作,直到完成其余工作。
  4. 一旦我的同步在启动和点播时工作得相当好,我就会尝试支持后台同步。我还会尝试消除“同步”按钮,因此用户永远不必考虑同步 - (就用户而言,它始终是最新的)。但这将是一个长期的增强,只有在“按需”同步工作坚如磐石之后我才会尝试。

希望这可以帮助您入门。我很想听听您是否对此有不同的看法。