因此,我的应用从我无法控制的服务器中提取JSON,并解析该JSON以填充UITableView
。
我想更新我的UITableView
以实时反映服务器上的最新信息。因此,每当服务器上的某些内容发生变化时,我的UITableView也会更新。
现在我想到的一个解决方案就是连续发送GET
请求,让我们在一分钟之后解析JSON并在表上重新加载数据。
但是,必须有一些其他解决方案来解决这个问题。我尝试过搜索,但迄今为止没有成功。
现在我明白这个问题在stackoverflow的标准中有些主观,但我真的需要帮助解决这个问题,而且我还没有从哪里开始有丝毫的线索。所以任何帮助都将不胜感激。
答案 0 :(得分:3)
重复GET通常不受欢迎,因为它在任何时候都不需要客户端和服务器资源,这可能是大部分时间。
由于您不控制服务器,我建议您构建一个 控制可以执行轮询的服务器,然后在检测时发送推送变化。与客户进行轮询相比,这有一些优势:它可以更好地扩展,因为世界上只存在一个轮询源,它可以节省客户端的能量以及纯粹的推送方式。
Apple provides a push system (APNS),其中您的服务器向您的iOS设备发送消息(通过Apple)。设备将在后台启动您的应用并调用:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
在您的应用代表身上。
答案 1 :(得分:0)
如上所述,最好使用APNS。 但是,如果你真的不控制服务器,那么你描述除了民意调查之外你什么也做不了。由于您正在为iOS编写,因此建议您考虑以下几点:
答案 2 :(得分:0)
正常无声通知是此
的最佳解决方案当您在服务器上添加任何新项目时,您可以向设备发送推送通知(无提示推送通知),以通知您在服务器端添加了某些内容的状态。
当设备收到此类推送通知时,您必须调用API并重新加载表视图。所以你不必每10秒重新加载一次tableview。
它“不会在通知栏中显示通知提醒,但只会在您想要推送新内容时通知您的应用有一些新数据可用。
显示在通知中心:否
唤醒应用以执行后台任务:是
在推送通知中添加以下来自服务器端的paylod { “内容可用”:1 }
{
"content-available" : 1
}