2011-06-08 52 views
1

和无响应我的意思是,在前三个成功的连接后,第四个连接启动,没有发生,没有崩溃,没有委托函数调用,没有数据发送出去(根据wireshark)。 ..它只是坐在那里?!如何调试无响应的异步NSURLConnection

我一直在为这一天和一半打我的头... iOS 4.3.3 最新的xCode,发生在模拟器中的真实设备上的相同方式。 我已阅读开发者论坛中的所有NSURLConnection帖子...我无所适从。

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

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

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

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

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

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

有关调试NSURLConnection或其他方式的任何建议完成NSURLConnection做同样的事情?

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

+0

...也许在这里发布一些代码? – makdad 2011-06-08 23:02:55

+0

有一大堆这就是为什么我只是寻找如何进一步调试NSURLConnection的提示。 – morgman 2011-06-09 00:53:11

回答

2

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

所以我会移动NSURLConnection的出didFinishParsing的,它应该留在主回路和我应该不错!

+1

太棒了!我对此感到头痛。随后使我的HTTP调用的逻辑被从另一个线程中启动。一旦我在主线程上添加执行,我的HTTP请求再次工作。这让我感到困惑,因为它一直在工作,直到我移动了一些代码。所以有一段时间我疯了:) – ganta 2015-10-24 00:10:08