如何安全有效地轮询API?

时间:2015-01-15 07:53:20

标签: ios swift

我正在Swift中开发一个企业iOS应用程序,它需要从我们的API中提取项目列表并在表格视图中显示它们。

列表可能每天更改几次,但我们的系统不会在数据更改时通知我们。

相反,应用程序需要定期轮询,比如每两小时一次,以获取最新数据并刷新列表。我已直接使用NSURLSession实现了API调用。

我的问题是,建立投票机制的安全有效方法是什么?如果有其他API服务必须轮询,可能会在不同的时间间隔内怎么办?

2 个答案:

答案 0 :(得分:2)

由于您正在开发企业应用程序并且不需要应用程序商店批准,因此您可以“滥用”现有的一种后台模式(例如VoIP)来定期轮询您的数据。

然而,我的建议是在另一台可以轮询API的服务器上实现一些代码,并在有新数据时向设备发送推送通知。这将更容易在iOS应用程序中实现,并在电池寿命和数据流量方面更高效。在设备重置后,它也不需要用户重新启动应用程序。

您还可以在将来轻松使用同一台服务器检查其他数据源。

答案 1 :(得分:-1)

可以通过NSTimer实现有效的轮询机制。

您可以让多个NSTimers从不同位置获取数据并处理不同的调度队列。

然后,当您获取新数据时,您可以使用新对象(类似于Core Data模型)广播本地通知。

您的应用可以从任何地方访问检索到的数据。

如果您只需要在一个位置使用数据,则可以使用委托或块回调模型。