使用Swift核心数据与Web服务器同步

13

我正在制作一款应用程序(使用Swift语言),需要在离线和在线模式下运行。当它处于离线模式时,数据将本地存储在CoreData中。一旦检测到网络连接(在线模式),它应该与服务器同步并更新后端数据库。如何实现?是否有相关的库或Pods可用?

我看过这篇文章,但没有可执行的内容。它过于高层次,我不知道从哪里开始。我也看过Ray Wenderlich的这个链接,但不知道如何转换成Swift语言。

任何教程链接都会有所帮助。

1个回答

11
  1. 为您的CoreData实体添加新的BOOL属性并将其命名为synched。这将基本上为每个对象存储同步状态。

  2. 现在,您需要检查互联网连接性。请参考此链接

  3. 每当您有互联网连接时,只需使用以下NSPredicate在您的获取请求中获取来自CoreData的对象:

    let isSynchedPredicate = NSPredicate(format: "synched = %@", false)
    
  4. 现在,您只需使用您的 Web 服务将所有获取到的对象同步并更新至服务器。上传成功后,请不要忘记将 synched 属性更改为 true


如何确保每次应用程序不会将所有内容上传到服务器,理想情况下,它只应上传/下载与服务器不同步的数据。 - Anuj Arora
该方法将确保只更新synched = false的对象到服务器。如果不存在这样的对象,则无需命中更新Web服务。再次强调一下,在上传了一组对象之后,您应该将所有这些对象的synchronized属性设置为false - Nishant
@AnujArora: 抱歉,伙计,我手头没有任何项目可以展示这个实现方法,而且为此制作一个样例项目太过繁琐。你可以尝试编写你自己的代码,如果遇到任何问题,可以通过提出新问题来寻求我的帮助。很乐意为你效劳。 - Nishant
@Nishant 我知道这个问题很旧了,但我正在尝试实现相同的结果,即一旦有网络连接,数据就会与服务器同步。我不确定你在第三步中所说的意思。你能进一步阐述一下吗?如果这是偏离了这个问题的上下文,那就告诉我,我会用我的方法解释一个新问题。 - Chace
如果删除了行呢? - Bedri Keskin
显示剩余3条评论

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