我正在尝试将某些数据从iOS发送到在线MySQL数据库。 PHP在服务器上用于处理数据接收和插入。
问题是我有几个数据包。关键是逐个发送它们,这意味着我需要一种机制让队列中的第二个数据包等待,直到iOS收到来自服务器的反馈,确认第一组数据已经存储到数据库中。
我最初尝试创建一个串行调度队列,旨在让iOS应用程序按顺序执行上传工作。尽管iOS方面确实按照顺序执行了工作,但每个任务只是“完成”发送其数据包而无需等待数据是否已插入数据库。然后问题是,由于网络连接等问题,在发送数据和数据完全保存到服务器中的MySQL之间总会有一段时间间隔。
因此结果是数据可能无法以所需的顺序保存,一些以后的数据可能比先前的数据保存得更早。
我猜测缺少的是从服务器端到iOS端的“反馈”机制。
任何人都可以建议一种实现这种反馈机制的方法,这样我就可以控制上传数据任务的序列顺序。
非常感谢!
此致 保罗
答案 0 :(得分:1)
如果要将数据发送到服务器,那么大多数可用的框架都会提供回调。使用AFNetworking(或现在称为Almofire),它看起来像这样:
10
因此,您可以将代码放在给定的处理程序中并不断发出请求。
您可能还想创建并发操作并将这些操作放在OperationQueue上,同时设置正确的依赖关系,但它确实更耗时。