我找任何一个示例应用程序或多个架构的讨论建立一个应用程序,它维护本地持久性存储(CoreData),并保持其同步针对web服务像Flickr。 在我的情况下,它是Salesforce的,但图案应类似于为Flickr,Twitter的,IMAP等许多应用程序。
样题:在哪里调用同步的最佳点? 什么被证明的数据结构,以保持局部变化 - 保持在本地存储为每unsynched改变,“改变” BOOL; 我宁愿对一个创纪录的水平标志字段级标志)?
当然,我必须优化这个我自己,知道的记录(100的)变化(每天10片)的数量和冲突的可能性(低在我的情况在现场级)。
下面是我会怎么处理这:
- 通过模拟,反映您的在线数据库本地CoreData / SQLite数据库启动。
- 一个NSDate LastModified属性添加到每个表的每一行。 这将让我跟踪的领域,而不是水平的创纪录水平的变化。 这将有助于减少同步的复杂性,而且在大多数现实世界的场景,创历史最好水平同步就足够了。
- 应用程序启动时执行自动同步,并且还提供了导航栏的显着“同步”按钮。 通过这种方式,用户可以随时更新的数据集时,应用程序经过长时间启动,并且可以同步在一天中的最新变化。 正在使用的应用程序,同时我会避免做后台同步。 这将使您的应用程序更加复杂,容易出错,当你试图解决其他事情。 因此,推迟对背景/自动同步工作,直到你有其他的工作。
- 一旦我有我的同步以及在发射和按需合理的工作,我会尝试,并支持后台同步。 我也尝试和消除“同步”按钮,这样用户从来没有去想同步 - (这是始终保持最新状态,只要用户而言)。 但是,这将是一个长期的提高,这也是我尝试后,才具有“点播”同步工作坚如磐石。
希望这可以帮助您开始使用。 我很想听听,如果你认为不同任何有关这一点。
文章来源: iOS app - architecture/sample for synchronizing CoreData against Web-Service