如何在一段时间后不用调用API而在应用程序中连续更新数据?

时间:2018-05-16 11:33:49

标签: ios iphone swift

我想知道如何在不经常调用API的情况下持续更新iOS应用中的数据。例如,如果我在tableView中有产品列表,并且我想从服务器更新每个产品的价格,因为它会不断变化。

有什么办法,当服务器中的任何值发生变化时,我可以从服务器发出任何可在我的应用程序中检测到的事件吗?

提前致谢。

3 个答案:

答案 0 :(得分:5)

这些是iOS中不断更新来自某个服务器的数据的方法。

  1. 轮询

    轮询是指在经常或不定期的时间间隔后使用某些POSTGET请求不断请求服务器的术语。
  2. 推送通知

    Silent Push-Notification是一种在发生更改时更新数据的方法。在此类型的服务器中,生成并请求 Apple 以使用某个自定义JSON发送通知。这是快速但无保证方法。因为Push可能会错过一段时间,或者可能会延迟一段时间。
  3. 插槽

    对于此类问题,Socket是最可靠,最准确的解决方案,只要应用程序client-end发生更改,应用程序就需要更新back-end。因为它始终与服务器保持实时通信,所以您不需要每次都请求服务器。

答案 1 :(得分:3)

在您的方案中,您希望更新每个单元格值。使用Socket编程可以实现这一点。套接字编程有助于快速实时更新日期。

套接字编程参考:

  

https://www.raywenderlich.com/157128/real-time-communication-streams-tutorial-ios

答案 2 :(得分:2)

如果您希望经常从您的服务器“推送”数据,可以使用像WebSocketsHTTP long polling这样的技术(哪种模拟推送轮询)。

Socket.IO-Client-Swift库抽象出这些细节,并为应用程序提供了一个很好的界面。

使用普通的旧TCP套接字是第三种选择。

我在此假设您的更新速率大约为每10分钟或更快(最多几十秒)。如果您的更新频率较低,例如每小时,那么Apple Push (aka remote) notification也应该有效。