如何将数据从旧版iPhone传输到新版iPhone
食物应用程式必须具备哪些功能?
如何为我的Android和Web应用程序实现共享的云数据库
在Web应用程序开发中应该使用什么?
如何知道我的Android应用程序值多少钱
哪款手机最适合国际象棋应用?
如何在iOS客户端和服务器之间同步引擎
如何在iOS客户端和服务器之间同步引擎

在计算机科学中,只有两件难事:缓存失效,命名和一次错误。 您的问题属于“缓存无效”类别。 我建议您从HTTP(或什至直接使用HTTP)中获得一些启发–在此,当服务器发送一条内容时,它将发送带有创建(或更新)该内容的UTC日期和时间的Last-Modified标头。 )。 当客户端发送请求时(无论是由于定期间隔还是只是新请求),它将包含一个If-Modified-Since标头,它将在其中仿照从原始请求中保存的日期和时间(如果服务器)确定自那时以来内容没有更改,它将以304 Not Modified答复,其答复正文为空,否则返回200 OK和(对客户端来说是新的)答复。 这样,即使有一个请求,如果内容没有实际更改,也只是一些标头。 还有一些选择可以完全避免连接-例如Expires标头,它告诉浏览器在上述时间之前甚至不打扰,而直接使用其缓存的内容。 另一个有趣的替代方法是对所有(版本的)资源使用唯一的名称(例如,您可以使用GUID),并告诉客户端永久缓存-“索引”文件可以使用第一种技术以及修改日期,如果想要更新它引用的某些资源(无论它们是什么),您只需为其生成一个新名称-当客户端在其缓存中找不到某个名称时,它将下载该名称。 如果您是自己实现的,请注意缓存不会无限增长–您可以通过考虑一些逐出策略来使缓存保持恒定大小,以便在添加新元素时,在其中使用可能性最小的元素。未来被抛弃。 当然,您看不到未来,因此您必须提出一些对您的应用有意义的折衷策略(例如,最近最少使用,也称为LRU –缓存算法)。 在您的位置,我将尝试使用HTTP。 没有理由自己写别人已经写好的东西🙂 PS:如果您想知道何时检查更新,可以采用两种方法-推送和轮询。 在轮询中,您会定期检查(例如,打开应用程序时,用户单击刷新时以及每15分钟检查一次)。 在推送中,您可以使用一种方法将服务器发送到客户端,以请求它进行更新(双向TCP连接,或者在Web世界中,WebSockets,或某些Apple push API或其他)。