2010-05-26 42 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