如何调试无响应的异步NSURLConnection

时间:2011-06-08 22:44:00

标签: asynchronous nsurlconnection hang

并且没有反应我的意思是在前三次成功连接之后,第四个连接被启动,没有任何反应,没有崩溃,没有调用委托函数,没有数据被发送出去(根据wireshark)......它只是坐在那里?!

我一直在打击我的头一天半...... iOS 4.3.3 最新的xCode,在真实设备上的发生方式与模拟器中的相同。 我已经阅读了开发者论坛中的所有NSURLConnection帖子......我很茫然。

从我的应用程序委托中,我根据Apple文档启动了异步NSURLConnection,使用App Delegate作为NSURLConnection的委托。

从我的applicationDidFinishLaunching ...我触发了最初的两个成功返回XML的查询,然后我将其传递给要解析的OperationQueue。 我甚至可以循环,重复这些查询,没有任何问题,重复10次,工作得很好。

通过用户输入触发下一系列的五个查询。第一个查询成功运行并返回正确的响应,然后创建下一个查询,当用于创建NSURLConnection时(就像所有其他查询一样),只需坐在那里。?!

我在所有其他查询中看到的正常委托调用从未见过。 根据Wireshark的说法,什么都没有通过电线? 我已经重新排序了查询,无论查询是什么,在第一个查询失败之后(失败,因为什么也没做,没有错误或中止,只是坐在那里)

显然在我的代码中,但我对此视而不见。

那么我可以使用其他工具来调试异步NSURLConnection ......我怎么知道它在做什么?如果有的话。

调试NSURLConnection或其他方法的任何建议都能完成NSURLConnection做同样的事情吗?

感谢您提供任何帮助......

1 个答案:

答案 0 :(得分:2)

确定跟踪它...... 我正在观察每个线程中的堆栈转储,因为我即将启动每个NSURLConnection,前三个都在预期的主线程中...第四个最终在一个新线程?!在我的一个NSOperation线程中?!?! 事实证明我无意中添加了逻辑(?),它在最后一次NSOperation调用didFinishParsing中启动了我的NSURLConnection:所以NSURLConnection开始异步,然后NSOperation终止...>。<

所以我会将NSURLConnection移出didFinishParsing,它应该保留在主循环中,我应该很好!