如何在iOS客户端和服务器之间同步引擎

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

为什么即使经过多年使用,iPhone却永远不会落后或放慢速度,而android却会非常挂起? iOS编程有什么专长吗?

将您的旧iPhone升级到最新的操作系统,您的电话将像树懒一样开始工作。 请参阅有关IO9的集体诉讼。 无论如何,请尝试购买价格相同的nexus设备或android设备,但不会发现此类问题。 您还应该避免制造商将无用的旧ui层放到普通android上(通常是为了实现营销差异化)并且无法针对硬件优化软件(应该在手机的xda上寻找自定义rom的制造商)进行更多优化,提供更好的电池以及更多功能)。 苹果公司的产品组合中只有很少的设备,它们对手机的硬件和软件拥有完全的控制权。 他们实际上根据硬件优化了操作系统,从而提供了更好的整体体验。 另一方面,Android被编写为可在多种设备上运行,因此本质上更为通用。 Android也可以进行优化,但是制造商通常做得很差,因此您的体验非常糟糕。 苹果还在其手机中使用了一些非常好的硬件组件,例如相机,处理器等。在其他android手机中也可以得到类似的产品,但是软件优化通常会抵消其性能。 购买苹果设备很简单,购买适合您预算的iphone,但仍在销售中,您就可以使用了。 购买Android设备比较棘手,您可以获得真正强大的硬件,但糟糕的软件层仍然会让您哭泣。 但是,正如我们友好的邻里朋友所说的那样,“强大的力量伴随着巨大的责任”。 仔细选择您的Android设备,任何人都可以在各地生产和出售它。 做出明智的决定。 做出更好的决定。 您将以更低的成本体验我多年以来的经验,并获得满意的体验。 注意:我真的很喜欢iPhone SE的价格点/功能以及我能想到的唯一的iPhone,但我仍然对我的联系5感到满意和受宠若惊。