作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将某些数据从 iOS 发送到在线 MySQL 数据库。服务器端使用PHP来处理数据的接收和插入。
问题是我有几个数据包。关键是一个一个发送,这意味着我需要一种机制让队列中的第二个数据包等待,直到 iOS 收到服务器的反馈确认第一组数据已经存储到数据库中。
我最初尝试创建一个串行调度队列,目的是让 iOS 应用程序按顺序执行上传工作。 iOS端虽然确实是按顺序进行的,但是每个task只是简单的“完成”发送自己的数据包,而不用等着看数据是否已经插入到数据库中。然后问题是由于网络连接等问题,从发送数据到数据完全保存到服务器中的MySQL之间总是会有一些时间间隔。
所以结果是数据可能没有按预期的顺序保存,一些后面的数据可能比前面的数据保存得更早。
我想缺少的是从服务器端到 iOS 端的“反馈”机制。
谁能建议一种实现这种反馈机制的方法,这样我就可以控制上传数据任务的顺序。
非常感谢!
问候,保罗
最佳答案
如果您要向服务器发送数据,那么大多数可用的框架都会提供回调。使用 AFNetworking(或现在称为 Almofire),它看起来像这样:
[[ConnectionManager instance] GET: @"link" parameters: nil
success:^(AFHTTPRequestOperation* operation, id responseObject)
{
}
failure:^(AFHTTPRequestOperation* operation, NSError* error)
{
}];
因此您可以将您的代码放入给定的处理程序中并不断发出请求。
您可能还想创建并发操作并将它们放在 OperationQueue 上,同时设置适当的依赖关系,但这肯定更耗时。
关于php - 如何一一管理上传操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40936572/
我是一名优秀的程序员,十分优秀!