2010-05-26 55 views
0

我有一个iPhone应用程序下载网址。 (PDF要显示)简单:NSURLConnection中的EXC_BAD_ACCESS:如何调试?

self.request = [NSURLRequest requestWithURL:self.url]; 
self.conn = [NSURLConnection connectionWithRequest:self.request delegate:self]; 

其中self.conn和request是保留属性。

对于特定的URL,这会引发EXC_BAD_ACCESS。该URL是有效的,并且以与工作的URL相同的方式构建。 (90%的网址是罚款)

这些那些工作:

http://www.airservicesaustralia.com/publications/current/ersa/FAC_YARG_11-Mar-2010.pdf 
http://www.airservicesaustralia.com/publications/current/ersa/FAC_YARK_11-Mar-2010.pdf 

这些不:

http://www.airservicesaustralia.com/publications/current/ersa/FAC_YAMK_11-Mar-2010.pdf 
http://www.airservicesaustralia.com/publications/current/ersa/FAC_YATN_11-Mar-2010.pdf 

现货的区别?是的,我也没有。对于他们来说,服务器的响应头也没有区别。澄清,工作总是工作,那些永远不工作的人。所以不是一些随机发布/保留问题。

对于那些不起作用的,我的委托中没有任何方法会被调用,在此之前它会失败。没有错误信息,只需EXC_BAD_ACCESS。

Sooo ....任何方式调试NSURLConnection内部发生了什么?

+0

您可以通过在可执行文件的参数列表中打开“NSZombiesEnabled”来调试EXC_BAD_ACCESS。 - 这里是一个链接:http://relk.in/12MP – 2010-05-26 12:29:34

+0

谢谢,我启用它,并得到: 2010-05-26 22:38:19.782 ERSA [80181:207] *** - [CFString释放]:发送到释放实例的消息0x5410a80 因为这是EXC_BAD_ACCESS的原因并不令人意外,但没有发现它为什么会发生。任何想法如何深入挖掘? – baswell 2010-05-26 13:16:01

回答

1

行 - 一些想法:

你的URL是NSURL的不是字符串吗? (我敢肯定,他们是但值得一检查)

当你说没有委托方法被调用,你检查连接:didReceiveResponse:

我猜的错误是毫无关系与此代码,并且这只是PDF大小的一些细微差别或者是导致错误的原因。

作为一种替代方法,请看看ASIHTTPRequest:它可能只是在你的失败的地方工作,没有理由!

+0

谢谢,请看ASIHTTPRequest。 绝对是URL而不是字符串。如果他们不是URL,所有请求都会一直失败,而不是特定的几个? 断点和日志记录在所有委托方法中。当请求失败时,连接:didReceiveResponse永远不会被调用,所以在它到达该点之前失败。 – baswell 2010-05-26 13:19:43

+0

谢谢!!我的错误是通过NSString :) – Abolfoooud 2012-05-28 11:36:54