NSURLConnection可以在模拟器中使用,但不能在iPad上使用



我有一个iOS应用程序,它通过PythonDjango服务器将记录插入MySQL服务器,然后立即查询该信息。

我正在使用带有处理块的[NSURLConnection sendAsynchronousRequest:queue:completeHandler:]来解析服务器JSON对象中的数据。

insert语句和query语句是从单独的sendAsynchronousRequests中运行的,但后者是从前者中的completionHandler块中调用的,以防止出现任何竞争条件。

在模拟器上,这可以完美地工作,并100%返回插入的数据。在运行iOS7的物理iPad上,响应永远不包含立即插入的数据。

如果我使用[performSelector:withObject:afterDelay:]在两个sendAsynchronousRequest之间插入长时间的暂停,它最终会起作用——但我需要添加2-3秒的延迟。

在模拟器上,插入和正确查询响应之间的时间小于500ms,因此不需要很长的延迟,而且似乎不是由模拟器上较低的执行进程引起的。

我在服务器代码中尝试过Cache-Control:max-age=0和Expires=headers,但两者都没有区别,所以我目前不认为这是NSURLConnection缓存问题。

我还能在这里俯瞰什么?为什么这在模拟器上能如此完美地工作,而在物理iPad上却不能?

谢谢!

我终于明白了。

我的服务器代码根据计算的时间段过滤结果,该时间段"现在"结束。与服务器相比,我的iPad上的时钟比服务器晚了几秒钟,而我的Mac的时钟与服务器同步。结果,从iPad上发布的记录被过滤掉了。

最新更新