2011-08-04 123 views
0

我調用[[ASIHTTPRequest alloc] initWithURL:url]時,我的應用程序崩潰了;在我的iPod Touch上1G。它在iOS 4.x上沒有問題。ASIHTTPRequest在iOS 3.1.3上崩潰

我看到的錯誤是錯誤域= ASIHTTPRequestErrorDomain代碼= 10的UserInfo = 0x368790 「NSRangeException」

,我從碰撞管理系統,我已經實現得回溯是

backtrace: (
"0 MayasDUp       0x0007f21b -[SWCrashManager backtrace] + 18", 
"1 MayasDUp       0x0007ece1 sighandler + 144", 
"2 libSystem.B.dylib     0x3049e7eb _sigtramp + 26", 
"3 MayasDUp       0x0005128b -[ASIHTTPRequest buildPostBody] + 850" 

我甚至單獨放置了[[ASIHTTPRequest alloc] initWithURL:url]調用,而沒有執行其他任何設置post變量和啓動連接。事故仍然發生。

我已經在ASIHTTPRequest中放置了斷點並記錄了NSLog,但沒有任何用處。

有沒有人有類似的問題?

+0

你能在調試器中運行通過,準確地向我們展示它的崩潰在這行buildPostBody? – JosephH

+0

buildPostBody方法已完全執行。我在方法的最後放置了一個NSLog調用和一個斷點,並且執行通常達到該點。 該應用程序在線程3上崩潰,它僅顯示0 節點以獲取更多詳細信息。 這似乎是一個小的延遲後發生崩潰,它不能正常顯示。 – Dimitrios

+0

你有沒有通過NSZombies啓用? – JosephH

回答

0

您可能在主線程上運行了超過10秒的內容。你在做同步http請求嗎?您必須使用:

[request startAsynchronous]; 

如果您在主線程中。

+0

我正在使用startAsynchronous。 – Dimitrios

+0

還有一件事需要很長時間才能運行。無論是試着用儀器運行,看看時間在哪裏,或者在超時發生之前在調試器中暫停,或者使用日誌記錄,或發佈更多的代碼。 – JosephH

1

經過大量的挖掘,我發現問題很深,實際上是一個編譯器錯誤。

簡而言之,使用LLVM 2.0併爲項目設置Optimization Level> None會導致損壞的編譯文件(ASIHTTPRequest和ASIFormDataRequest),導致崩潰並且在堆棧跟蹤中沒有提供真實數據。

我們應用的解決方案是保持編譯器和優化設置不變,併爲存在問題的2個ASIHttp文件添加-O0編譯器標誌。

其他用戶報告說XCode 4.0.2修復了編譯器問題。

任何有興趣,這裏還有一些細節: http://groups.google.com/group/asihttprequest/browse_thread/thread/c598649bfe71643c/8ee09defd12386ba?lnk=gst&q=crashes#8ee09defd12386ba