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

时间:2012-04-18 10:28:53

标签: ios web-services core-data sync iphonecoredatarecipes

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

示例问题: 调用同步的最佳点在哪里? 什么是经过验证的数据结构,以维持本地变化 - 为每个未经同步的变化在本地商店维持一个“改变”的BOOL;我更喜欢对记录级别标志的字段级别标志)?

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

1 个答案:

答案 0 :(得分:3)

以下是我如何做到这一点:

  1. 首先建模一个镜像您的在线数据库的本地CoreData / Sqlite数据库。
  2. 将NSDate lastModified属性添加到每个表的每一行。这将允许我跟踪记录级别的更改,而不是字段级别。这有助于降低同步复杂性,在大多数实际情况下,记录级别同步就足够了。
  3. 在应用启动时执行自动同步,并在导航栏中提供突出的“同步”按钮。这样,当应用程序在很长一段时间后启动时,用户始终拥有更新的数据集,并且可以在一天中同步最新的更改。在使用应用程序时,我会避免进行后台同步。当您尝试解决其他问题时,这会使您的应用更加复杂且容易出错。所以推迟在后台/自动同步工作,直到你完成剩下的工作。
  4. 一旦我的同步在启动和按需上运行得相当好,我会尝试支持后台同步。我也会尝试消除“同步”按钮,因此用户永远不必考虑同步 - (就用户而言,它始终是最新的)。但这将是一个较长期的增强,我只有在“按需”同步工作坚如磐石后才会尝试。
  5. 希望这可以帮助您入门。如果你对这一点有不同的看法,我很想听听。