我想知道如何在不经常调用API的情况下持续更新iOS应用中的数据。例如,如果我在tableView中有产品列表,并且我想从服务器更新每个产品的价格,因为它会不断变化。
有什么办法,当服务器中的任何值发生变化时,我可以从服务器发出任何可在我的应用程序中检测到的事件吗?
提前致谢。
答案 0 :(得分:5)
这些是iOS中不断更新来自某个服务器的数据的方法。
POST
或GET
请求不断请求服务器的术语。Silent Push-Notification
是一种在发生更改时更新数据的方法。在此类型的服务器中,生成并请求 Apple 以使用某个自定义JSON
发送通知。这是快速但无保证方法。因为Push
可能会错过一段时间,或者可能会延迟一段时间。Socket
是最可靠,最准确的解决方案,只要应用程序client-end
发生更改,应用程序就需要更新back-end
。因为它始终与服务器保持实时通信,所以您不需要每次都请求服务器。答案 1 :(得分:3)
在您的方案中,您希望更新每个单元格值。使用Socket编程可以实现这一点。套接字编程有助于快速实时更新日期。
套接字编程参考:
https://www.raywenderlich.com/157128/real-time-communication-streams-tutorial-ios
答案 2 :(得分:2)
如果您希望经常从您的服务器“推送”数据,可以使用像WebSockets或HTTP long polling这样的技术(哪种模拟推送轮询)。
Socket.IO-Client-Swift库抽象出这些细节,并为应用程序提供了一个很好的界面。
使用普通的旧TCP套接字是第三种选择。
我在此假设您的更新速率大约为每10分钟或更快(最多几十秒)。如果您的更新频率较低,例如每小时,那么Apple Push (aka remote) notification也应该有效。